Portál AbcLinuxu, 10. května 2025 08:09

Dotaz: sed - jak oznacit radek

27.11.2017 19:51 JoK1955 | skóre: 3
sed - jak oznacit radek
Přečteno: 1093×
Odpovědět | Admin
Zdravím všechny. Mám text soubor a potřeboval bych označit řádky (třeba vložením 999 na začátek), kde je jen jedno, dvě max. tři slova. Zkusil jsem sed, ale neumím sestavit fungující reg výraz. Pomůžete někdo, pls?

Ř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

Řešení 1× (JoK1955 (tazatel))
27.11.2017 20:20 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: sed - jak oznacit radek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Musí to byť sed?

$ cat /tmp/test
aaa bbb
ccc ddd eee fff
ggg hhh iii
jjj kkk lll mmm nnn
$ awk '{print ((NF<4) ? "999 " $0  : $0) }' < /tmp/test
999 aaa bbb
ccc ddd eee fff
999 ggg hhh iii
jjj kkk lll mmm nnn
27.11.2017 20:44 JoK1955 | skóre: 3
Rozbalit Rozbalit vše Re: sed - jak oznacit radek
jistěže nemusí... jen ho trochu - hodně málo - znám :-) na awk jsem koukal a funguje to... jen označuje i prázdné řádky a já při rychlém hledání nevím co nastavit, aby tomu tak nebylo :-) samozřejmě je mohu předem vymazat :-) Díky.
27.11.2017 20:46 JoK1955 | skóre: 3
Rozbalit Rozbalit vše Re: sed - jak oznacit radek
Tak u6 to v9m >/] awk '{print ((NF<5&&NF>0) ? "999 " $0 : $0) }' < test.txt>vyst.txt

28.11.2017 12:09 fi
Rozbalit Rozbalit vše Re: sed - jak oznacit radek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zalezi, co vsechno je "slovo", pokud \w+, tak bych pouzil: sed -r 's/^((\s*\b\w+\b\s*){1,3})$/999 \1/'

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.