Kapok egy találatot a cat paranccsal, és abból csak az idézőjelek közti rész érdekel. Az lesz az új változó értéke. Ezt hogyan tudnám megvalósítani?
$cat valami_fájlból | grep valami_szövegrész
valami_szövegrész="ez_kell"
result="$(cat valami_fájlból | grep valami_szövegrész | sed... )"
A sed az igen távol van tőlem, de szvsz az lenne a jó. Tehát idézőjelek nélkül kellene az eredmény.
echo result - $result
ez kell
- 5587 megtekintés
Hozzászólások
Ha már grep is van a sed mellett, akkor már awk:
$ echo 'valami_szovegresz="ez_kell"' | awk 'sub(/^valami_szovegresz="/, "") && /"$/'
ez_kell"
Egyébként grep előtt cat futtatása szörnyű román szokás.
- A hozzászóláshoz be kell jelentkezni
+1
t
- A hozzászóláshoz be kell jelentkezni
sed -n '/valami_szovegresz/s/.*"\(.*\)"/\1/p' valami_file
--
Soli Deo Gloria
- A hozzászóláshoz be kell jelentkezni
Ahaaa... -n + /p, erre a párosításra illett volna emlékeznem.
- A hozzászóláshoz be kell jelentkezni
Csak kipróbálásra:
echo '"ez kell",ez nem kell,"ez is kell"' | grep -Po '".*?"' | sed s/'"'/''/g
A lényeges rész a `grep`. Fájl esetében:
grep -Po '".*?"' fajlneve | sed s/'"'/''/g
- A hozzászóláshoz be kell jelentkezni
Zozz megoldása a jó, mert az (ez kell) az bármi lehet, tehát pont arra nem szűrhetek. Az (ez kell) is egy eredmény.
Köszi Zozz.
- A hozzászóláshoz be kell jelentkezni
Szívesen :)
azt nem írtam, hogy ehhez nem kell se cat se grep, de gondolom rájöttél.
--
Soli Deo Gloria
- A hozzászóláshoz be kell jelentkezni
esetleg:
... | cut -d\" -f2
szaszi
- A hozzászóláshoz be kell jelentkezni
OFF:
a peldad alapjan nekem ugy tunik, hogy egy konfig fajlbol szeretnel valtozot kinyerni. ha igy van, akkor ez sokkal elegansabb modja:
#!/bin/sh
if [ -e valami_file ]; then # ellenorizzuk, hogy letezik-e a fajl
. valami_file # behuzzuk
fi
echo $valami_szovegresz # a valtozo a valami_file-ban kapott erteket
- A hozzászóláshoz be kell jelentkezni
Csak lehet, hogy ezzel olyan környezeti változókat is átír, amit nem szeretne.
Ha tényleg ez van a háttérben, akkor:
source <(grep változó_amit_akar fájl)
- A hozzászóláshoz be kell jelentkezni