O tomhle se tu uz nekolikrat vedla diskuze. Pro nektere je tam ta roura a prikaz cat zbytecny. Napisi to jako grep some-string smthg. Vysledek bude stejny, jen zpracovani bude asi o 0.000001s rychlejsi. Zalezi spis na tom, co Ti prijde prehlednejsi a vhodnejsi pro Tebe
cat|grep spusti cat a grep. vystup cat je pres rouru napojeny na vstup grep. kdyz ten cat pouzijete jen na vypsani souboru, zatimco grep sam o sobe proste umi cist ze souboru, tak je zkratka zbytecne spoustet jeden proces navic a prelevat data pres rouru.
pokud jde o tu rychlost, tak si to prosim zkuste na nejakych peknych velkych datech. na trosicku zatizenem servriku. ve vyrazu, kde i bez toho rourujete 10 prikazu. apod.
To je sice pravda, ale me se hodnekrat stava, ze zacnu psat "cat xxx |grep yyy" a skocim u mnohem slozitejsiho vyrazu, ktery se musi mezi cat a grap vlozit. Dalsi vec je, ze ne vzdy pouzijete cat ale klidne nejaky jiny vystup, takze "cat|grep" je proste ustaleny zazity postup a je zbytecne se ucit nejakou vyjimku ktera plati pouze a jen pro netknute soubory...
ja nemluvil o tom, ze je to nesmysl. Proste nekdo grepuje v kombinaci s catem. Ja pouzivam obe moznosti. Nekdo tady uvadel rychlost. Myslim ze velka vetsina pripadu kdy se to volam s catem je proste z radky kdy neresime nejaka velka data. Pokud opravdu potrebuju vykon, nebudu to resit shell skriptem. Ale je pravda, ze jsem ten prispevek mohl formulovat lepe :-)
Ale napada mne myslenka - spousta lidi tu kombinaci pouziva. Jak to vzniklo? Nejaka ucebnice linuxu to takhle uvadi? Nebo grep drive neumel cist soubor?