Sida 1 av 1

SV: Ta ut del av sträng till variabel?

Postat: 12 sep 2007, 22:56
av johanre
Menar du t.ex.

Kod: Markera allt

datum=`cat $TIFF.Ifd0.Exif.DateTimeOriginal | awk -F" " '{print $1}' `

SV: Ta ut del av sträng till variabel?

Postat: 13 sep 2007, 02:05
av DeepThought
Haha, jag satt och funderade på det här precis, så kommer frågan! Ber om ursäkt för att jag trampar in, men eftersom jag precis lyckades med samma sak måste jag skriva ;)

Mitt problem var att sortera ut paketnamn, vilket resulterade i följande:
apt-cache dumpavail | grep "Package:" | gawk -F: '{print $2 }' | sort

Men jag hittade följande, vilket kanske gjorde ovanstående överflödigt?
apt-cache pkgnames | sort

F.ö. verkar de verkar returnera ungefär samma, men det första ger bara ~23000 träffar, och det andra ger ~30000 träffar :-\ Beror kanske på att vissa paket som listas inte är tillgängliga..

Nåväl, till mitt problem: när jag kör gawk -F: '{print $2 }' så får jag ett mellanslag först på raden när den skrivs ut (d.v.s. det mellanrum som finns mellan Package: och paketnamnet). Varför? Hur blir jag av med det?

SV: Ta ut del av sträng till variabel?

Postat: 13 sep 2007, 04:38
av Konservburk
DeepThought skrev: Nåväl, till mitt problem: när jag kör gawk -F: '{print $2 }' så får jag ett mellanslag först på raden när den skrivs ut (d.v.s. det mellanrum som finns mellan Package: och paketnamnet).
DeepThought skrev: Varför?
Eftersom du sätter fältseparatorn till kolon (-F:) så kommer
$2 att bli allt mellan det det första och (eventuellt) andra
kolonet, inklusive mellanrum.
DeepThought skrev: Hur blir jag av med det?
T.ex.

Kod: Markera allt

apt-cache dumpavail | awk '/^Package: /{print $2}'

SV: Ta ut del av sträng till variabel?

Postat: 13 sep 2007, 07:41
av DeepThought
Ah! Nu trillade två poletter ner ;D

Tack!

SV: Ta ut del av sträng till variabel?

Postat: 14 sep 2007, 23:54
av Konservburk
Håkan skrev: Har klarat få ut datum delen till en variabel :). Skulle nu behöva byta datum format på variabeln från 2007:09:01 till 2007-09-01.

exempel

Kod: Markera allt

hakan@Bilbo-laptop:~/test$ datum=2007:09:01
hakan@Bilbo-laptop:~/test$ echo $datum
2007:09:01

Kod: Markera allt

bash$ datum=2007:09:01
bash$ echo ${datum//:/-}
2007-09-01

SV: Ta ut del av sträng till variabel?

Postat: 15 sep 2007, 15:34
av Konservburk
Håkan skrev: Det har visat sig att datumet ligger på lika ställen beroende på filtyp. Använder följande kod för att få ut strängen när bilden är tagen

Kod: Markera allt

text=`exifgrep Exif.DateTimeOriginal _DSC0801.NEF`
Nu skulle jag vilja få datumet i till en variabel gärna med - istället för :

Kod: Markera allt

datum=$(exifprobe -L _DSC0801.NEF | awk -F"[ ':=]*" '/Exif.DateTimeOriginal/{print $2 "-" $3 "-" $4}')
Om du vill ha ut datumet på formen YYYY-MM istället så kan du
helt enkelt strunta i att ta med "-" $4, dvs {print $2 "-" $3}.