Portál AbcLinuxu, 10. května 2024 17:22


Dotaz: nalezení dvojice

30.3.2009 18:07 petra
nalezení dvojice
Přečteno: 266×
Odpovědět | Admin

použitelné interprety awk, sed, dále standardní utility pro práci s textem (grep, cat, cut, sort, uniq, apod.)


Potřebuji v souboru najít dvojci znaků "$ " (dolar mezera) a vše co je on nich do konce řádku vložit do proměnné.
$ sh -c "ls|wc"
a klíčová slova začínající pouze $ (treba $FILES) a nejsou vzdy na zacatku radku

Mám soubor, v něm klíčové slovo např $EXEC, jak jej mám nahradit seznamem ve tvaru např.
  * /bin/ls
  * /bin/sh
  * /usr/bin/wc

ze souboru musím vytáhnout názvy souborů i s cestou za klíčovými slovy třeba open, soubor je výstupem volání strace

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.3.2009 18:23 l4m4
Rozbalit Rozbalit vše Re: nalezení dvojice
Odpovědět | | Sbalit | Link | Blokovat | Admin
Když už sem píšeš zadání domácí úlohy namísto pokusu o vlastní řešení, tak ať to aspoň má hlavu a patu.

Jak spolu souvisí $FILES a '$ ', co to je vložit do proměnné, když je těch věcí v souboru třeba milion, jak spolu má souviset ten seznam a ten $EXEC... a pak už to nedává smysl vůbec.

Nejlepší bude, když vložíš nějaký vlastní pokus o řešení, napíšeš, co ti v něm nefunguje, a určitě ti někdo poradí, jak to opravit.
30.3.2009 18:24 petra
Rozbalit Rozbalit vše Re: nalezení dvojice
Odpovědět | | Sbalit | Link | Blokovat | Admin

nestuduju fit ale mendelku:-)jen pro upřesnění

30.3.2009 20:36 NN
Rozbalit Rozbalit vše Re: nalezení dvojice
Odpovědět | | Sbalit | Link | Blokovat | Admin

ad 1) Neco jako:

PROM=`cat $FILE | grep \$\  `

ad 2) Napriklad:

sed s/\$FILE/\* \/bin\/ls  \n\* \/bin\/sh  \n\* \/usr\/bin\/wc\\n/ $FILE

Je to blbe,ale tak nejak.

NN

30.3.2009 21:35 petra
Rozbalit Rozbalit vše Re: nalezení dvojice

jj, díky moc a když bych chtěla dostat jen to, co je za tím dolar mezera? Díky za pomoc

31.3.2009 10:44 l4m4
Rozbalit Rozbalit vše Re: nalezení dvojice
grep -o '\$ .*' | cut -c2-

Jsou to dva příkazy, ale může-li se '$ ' vyskytovat vícekrát a je třeba to odříznout na prvním, je to v sedu škaredé...
31.3.2009 11:17 pakanek | skóre: 28 | Vyškov
Rozbalit Rozbalit vše Re: nalezení dvojice

cat $FILE | grep \$\   | awk 'BEGIN { FS="$""" } { print $2 }'

Všechno dobré je pro něco zlé.
31.3.2009 12:49 l4m4
Rozbalit Rozbalit vše Re: nalezení dvojice
Tři příkazy, a stejně to nefunguje při více výskytech '$ ' na řádku. Tj. výsledek stejný jako u

sed 's/.*\$ //;t;d'
31.3.2009 17:12 Ash | skóre: 53
Rozbalit Rozbalit vše Re: nalezení dvojice
sed -n -e "s/[^$]*\($.*\)/\1/p" soubor.txt

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.