Portál AbcLinuxu, 12. května 2025 18:27

Dotaz: Seznam převést do řádku a vyjmout určité řetězce

24.7.2013 15:10 yardy
Seznam převést do řádku a vyjmout určité řetězce
Přečteno: 224×
Odpovědět | Admin
Ahoj, mám seznam a ten seznam potřebuji okleštit o některé výrazy a zobrazit ho do řádku. Funguje mi to takto (cat seznam | grep -v marie | grep -v jana | tr "\n" " "), nicméně, pokud by měl seznam milion položek, tak tam zbytečně nebudu psát grepy, neumím použít více výrazů pro parametr -v. A vím, že si tady spousta lidi bazíruje na správnosti a jednoduchosti.

petr pavel jan marie jana marek

Z takového to výstupu potřebuji udělat petr pavel jan marek

Díky


Řešení dotazu:


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

Odpovědi

24.7.2013 15:31 potato
Rozbalit Rozbalit vše Re: Seznam převést do řádku a vyjmout určité řetězce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud je řetězců, které se mají vynechávat, hodně, tak nejpřímočařejší řešení asi je mít soubor exclude
marie
jana
a použít
grep -Fxvf exclude seznam | tr '\n' ' '
přičemž -F platí, pokud to jsou pevné řetězce jako v ukázce. Jsou-li to opravdu regulární výrazy, tak bez -F. Volba -x platí, pokud se řádek marjana má ponechat, tj. musí vyhovovat celý řádek (což by ukázka naznačovala); bere-li se match kdekoli jakkoli, tak bez -x.
24.7.2013 15:34 Jezus | skóre: 15 | Jablunkov
Rozbalit Rozbalit vše Re: Seznam převést do řádku a vyjmout určité řetězce
Odpovědět | | Sbalit | Link | Blokovat | Admin
grep -vE "marie|jana" seznam | tr "\n" " "
24.7.2013 15:38 NN
Rozbalit Rozbalit vše Re: Seznam převést do řádku a vyjmout určité řetězce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Napriklad:
echo petr pavel jan marie jana marek | sed -r 's/(marie|jana)//g'
ale nejsou osetrene mezery a finalni zalamovani(nepochopil jsem jestli je potreba nebo neni), pokud grep nestaci je tu take egrep..

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.