Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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.

Předmět Autor Datum
zkusit čistý zshrc (a pustit znova zsh). 2. Zjistit, kde je chyba. je v příkazu ls? dává výstup? výs…
mnua.al 28.01.2014 10:58
mnua.al
Tak s čistým .zshrc to funguje, vůbec mně nenapadlo to zkusit, díky :) Teď už jen najít v konfigu ch…
varvatos 28.01.2014 11:12
varvatos
Tak vyřešeno, je to tím: alias ls='ls --color', pro barevný výpis se na začátky jednotlivých řádků n…
varvatos 28.01.2014 11:16
varvatos
Tohle chování je správné. grep sám o sobě nevypisuje složky, ale pouze adresáře. Pokud chceš vypisov…
kilroy1 28.01.2014 11:00
kilroy1
překlep: Nevypisuje složky, ale pouze soubory
kilroy1 28.01.2014 11:02
kilroy1
11 ráno a už jsi takhle sťatý? Když má grep něco na vstupu, tak přece testuje řádky vstupu daným pat…
mnua.al 28.01.2014 11:06
mnua.al
k tomu lze použít logické OR a AND. retazec1 OR retazec2 OR retazec3: grep -e "retazec1" -e "retaze… poslední
varvatos 28.01.2014 11:20
varvatos

zkusit čistý zshrc (a pustit znova zsh).
2. Zjistit, kde je chyba. je v příkazu ls? dává výstup? výstup dát do proměnné a manuálně grepovat? Zkoušel jsi grep -P?, protože grep defaultně používá trapné basic regexp.

Tak s čistým .zshrc to funguje, vůbec mně nenapadlo to zkusit, díky :) Teď už jen najít v konfigu chybu...

Jinak dotaz jsem napsal špatně, nepoužívám 'ls -l', ale jen 'ls'.. Jelikož s tím přepínačen -l by to samozřejmě nevypsalo nic, protože na začátku by byly práva a ne názvy souborů.

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ď.

Zpět do poradny Odpovědět na původní otázku Nahoru