
Nefunkčnost příkazu grep v zsh shellu
Dobrý den, mám menší problém funkčností příkazu grep v zsh shellu. Jde o to, že když třeba použiji příkaz:
ls -l | grep '^D'
tak se mi nevypíše vůbec nic, přitom ve složce, kde příkaz zadávám, se nachází složky Dropbox a Downloads. Nevíte někdo, čím to může být? Pokud to zkusím v bashi, funguje to bezproblémově a složky se vypíšou.
Zde pro jistotu přikládám ještě konfigurační soubor .zshrc: zQLZyL6T
Děkuji za odpovědi.
Tohle chování je správné. grep sám o sobě nevypisuje složky, ale pouze adresáře. Pokud chceš vypisovat i složky, použij přepínač -r (grep -r). To, že ti to funguje v bashi bude nejspíše tím, že máš v něm nastavený alias grep='grep -r'.
11 ráno a už jsi takhle sťatý? Když má grep něco na vstupu, tak přece testuje řádky vstupu daným patternem a žádný soubory ani složky v téhle proceduře nehrají.
PS: nevíte, jestli existuje nějaký modifikátor, který by při zadání více patternů říkal, že má vybrat jen řádky, kde se shoduje aspoň jeden pattern nebo naopak všechny patterny? Nevím, jak je to teď.
k tomu lze použít logické OR a AND.
retazec1 OR retazec2 OR retazec3:
grep -e "retazec1" -e "retazec2" -e "retazec3" subor
retazec1 AND retazec2 AND retazec3:
grep retazec1 subor | grep retazec2 | grep retazec3