Portál AbcLinuxu, 13. listopadu 2025 10:49
Také jste si všimli, že spousta lidí používá podivnou kombinaci příkazů například pro grepnutí něčeho z obsahu souboru?
cat soubor | grep výraz
Místo jednoduššího, kratšího a IMO i snadněji naučitelného nebo zapamatovatelného (protože logičtějšího):
grep výraz soubor
Tak si říkám, jak na to přišli? Totéž se často provádí i s jinými příkazy než grep. Samozřejmě nejde o nic nového... Spousta z vás určitě zná stránku Useless use of cat. Ale mě by zajímalo, odkud se to bere.
Není to někde v nějakém pochybném HOWTO, které si lidi často čtou? Nebo je to z nějakého podivného důvodu srozumitelnější zápis? Já si vzpomínám, že když jsem - coby samouk - zjistil, co je roura, tak jsem si to hned takhle vyzkoušel.
Tiskni
Sdílej:
<soubor nějaký složitý příkaz co neznámjste ještě neslyšel? Pořadí zadávání to má úplně stejné
<soubor blabla bla a pak zmáčknout Home(nebo Ctrl+A) potom Alt+F a Ctrl+W, zaměň za výstup z iného progamu a fičíš S cat soubor | to třemi údery do klávesnice neuděláš. Když to budeš dělat přes ssh na pomalé lajně, tak si párkrát přemažeš i kus toho následujícího příkazu. Tak já nevím, ale ergonomie <soubor je o řád lepší.
cat si nemusíte pamatovat pořadí parametrů grepu ;)
kombinace '... | cat - > cosi' je opravdu nevidana.Ale bezesporu je to vynalézavé. Škoda, že tam to
| cat - není vícekrát hned za sebou...
Inak cat zvyknem pouzivat na simulovanie stand. vstupu pri scriptoch, ktore sluzia ako filtre. Ako som napisal, po otestovani cat ide prec.
cat soubor a mam dostatek casu si promyslet, co dal;)
Asi hodne blbej duvod. Ale citili byste se lepe, kdybyste vterinu jen tak koukali do shellu na kurzor? Pro me je asi lepsi premyslet u psani, zvlastni.
cat soubor | pište <soubor a budeme spokojení všichni. Jako malý bonus ušetříte pět úhozů do klávesnice. Jen jestli vám těch pět úhozů nebude chybět při tom přemýšlení.
<huge.log grep idiot| wc -l
(infilter=cat [ "x$arg" = "xz" ] && infilter=zcat [ "x$arg" = "xj" ] && infilter=bzcat [ "x$arg" = "xf" ] && infilter="ftpget ftp.example/com" outfilter="cat - >" $infilter insubor \ | prikaz \ | prikaz \ | $outfilter outsubor
<soubor sice skutečně zachovává výše zmíněné hodnoty, ale odstraňuje jednu: vizuální přehlednost. Kůl (pro ty co neznají doc. Bokra: |) je velmi výrazný oddělovač a na první pohled vidím, kde začíná skutečná práce.
Samozřejmě, ve scriptech nemá cat co dělat. A <soubor už vůbec ne.
grep int rar.cppNahoru, Alt+B, Ctrl+W a vidím:
grep int cpps kurzorem před
c.
< soubor, takže to nejspíš myslel nějak takhle:
< rar.cpp grep int
nahoru, CTRL+W, píšu nový výraz, enter a fičím.
takhle to vypadá, když je člověk zvyklej nečíst příspěvky a hned flamovat ;)
Netušil jsem, že se hned počítá s tím <.
grep *.cpp *.h janevimcojeste -e intať žije GNU getopt
Budu si v shellu tvrdosijne pouzivat svuj oblibeny cat a pajpu a zadnej chytrak mi do toho nebude kecat, tak!
cat si mohou trhnout nohou. Jen abych je trochu poškádlil: občas dokonce používám cat ještě drsnějším způsobem:
ls -l | catTak, a co povíte na tohle, moralisté? :-)
K čemu je to dobré?ls -l | cat
unalias ls a ls -1, případně si ten alias vymazat z bashrc tak napíšeš ls | cat. Je to tak krásně intuitivní a nemusíš se nic učit. Napsat do basrc: alias l='ls --color=none -1' tak to už by přesáhlo veškeré mentální schopnosti některých jedinců.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.