string manipulation in a shell script
Kathy Quinlan
kat-free at kaqelectronics.dyndns.org
Sat Jul 17 06:11:15 PDT 2004
Matthew Seaman wrote:
> On Sat, Jul 17, 2004 at 04:33:27PM +0800, Kathy Quinlan wrote:
>
>>Hi guys and Gals,
>>
>>I have a simple script:
>>
>>#!/bin/sh
>>
>>a=ia$(date +%d%m%Y)
>>
>>tar -cf "$a.zip" "/usr/home/projects/lunaria/items all"
>>mv $a.zip /usr/home/itemsall/
>>
>>this nearly does what I want, I would like to put the time in the file
>>name aswell. If I put the %T in the date variable, the resultant value
>>for $a has : seperating the hours, minutes and seconds.
>>
>>Try as I might, I can not find away to remove the : and tar spits the
>>dummy at them and it causes an IO device error.
>>
>>I looked through sed and awk, and spent an hour playing, but all to no
>>avail.
>>
>>Anyhelp apreciated,
>
>
> Well, to get date(1) to spit out a date-time string without any
> unfortunate punctuation, try something like:
>
> % date +%Y%m%d%H%M%S
>
> See strftime(3) for details of all the % escapes you can use with
> date(1).
>
> On the other hand, tar(1) has an option --force-local which causes it
> to ignore colons in filenames as indicating a remote tape drive.
> Nb. that's gnu tar, which is the standard tar in all 4.x and any
> 5.x-RELEASE -- 5.2-CURRENT will shortly switch to bsdtar, and that
> will probably work differently.
Thanks Matthew,
I looked in date, but was not aware of strftime.
This is exactly what I needed :)
Regards,
Kat.
More information about the freebsd-questions
mailing list