Portál AbcLinuxu, 10. května 2025 05:07
gsdfgsdf gdfgsd první .... další 54646 fasdfa konec fasd fasdf asf4564a potřebuju vybrat text od první až po konec
grep -A 999999999 první ok
awk '/^první$/ { tisk=1 } { if (tisk) { print } } /^konec$/ { tisk=0 }'
tiskni = False for line in file('soubor'): line = line.strip() if tiskni: print line if line == 'konec': break else: if line == 'první': print line tiskni = TrueA mělo by to být i efektivnější, jelikož neprochází celý soubor, ale pouze do řetězce "konec" a krom toho každý řádek porovnává pouze jednou.
f = file('soubor') while 1: line = f.next().strip() if line == 'první': break print line while 1: line = f.next().strip() print line if line == 'konec': breakA těch neodchycených výjimek taky ne
Jak se v takovémhle případě, prosím pěkně, měří efektivita dvojího nebo jednoho porovnávání?Přiznávám, že jsem ji fakt neměřil. Ale buď se porovnává jednou anebo dvakrát. To je jediná věc, kterou jsem tím chtěl sdělit.![]()
A nevěřím, že by v gawku nešel napsat exit.Tak to jsme dva. Ale víru bych do toho netahal
sed
:
$ sed -n "/první/,/konec/ p" soub.txt první .... další 54646 fasdfa konec
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.