GNU/Linux >> Znalost Linux >  >> Linux

Výhody katovacího pilníku a potrubí do grep

Je lepší se vyhnout kočce; napište to takto, pokud na úpravě řádku záleží:

$ < filename grep pattern

Důvodem je, že protlačení všech dat přes cat stojí paměť a zdroje CPU. Další výhodou předávání názvu souboru jako argumentu spíše než přesměrování stdin je to, že umožňuje příkazu možnost mmap() souboru.


Nemůžu uvěřit, že se ještě nikdo nezmínil o "Useless Use of Cat" http://www.smallo.ruhr.de/award.html

Je tu jedna sporná výhoda. Pokud máte dlouhé potrubí, vypadá to trochu ortogonálněji s cat:

cat file | command1 | command 2 | command3

Seskupuje všechny příkazy dohromady.

Samozřejmě, jak řekli ostatní (a já to dělám)

< file command1 | command2 | command3

Provádí v podstatě to samé. To znamená, že kočka je docela malá a nezničí váš počítač, pokud jej používáte, když to opravdu nepotřebujete.

Normálně pomocí cat vs přímým zásahem do souboru se nic nezmění, ale udělá rozdíl pro určité příkazy, které se starají o to, zda existuje více souborů jako argumentů, například grep . Příklad:

cat file1 file2 | grep SOMETHING

bude mít jiný výstup než

grep SOMETHING file1 file2

Které budou mít ve výstupu odpovídající názvy souborů. Jsou chvíle, kdy nechci názvy souborů, a použití cat je výhodou .


Neexistuje žádná výhoda. Váš kurzor na konci také moc nezáleží, pokud jej místo toho strukturujete takto:< inputfile grep -args foo


Linux
  1. Tisknout čáry mezi (a včetně) dvěma vzory?

  2. Rozdíl mezi Cat a „>“ k vynulování souboru?

  3. Výstup do Stdout a zároveň Grep do souboru?

  1. Oprávnění a ukládání souborů?

  2. Použít příkaz Grep a vyhledat?

  3. Vypsat názvy souborů na základě vzoru názvu souboru a obsahu souboru?

  1. Přesměrování a výstup potrubí?

  2. Řez / Grep A Df -h?

  3. Jak mohu kat soubor a odstranit komentované řádky?