Как остановить 'grep' от усечения вывода канала

Для получения количества имен файлов, которые имеют определенное символьное использование:

set n=`ls *.txt | fgrep -c _`

Это распечатает только имена файлов, которым нашли символ и затем считают количество записей возвращенным. В tcsh необходимо снабдить префиксом присвоения set.

2
14.02.2013, 00:40
3 ответа

Как это:

{ grep foo file.txt; echo END OF OUTPUT; } > output.txt

Это группирует команды, не запуская подоболочку (кроме с Оболочкой Bourne).

Вы могли сделать:

grep foo file.txt | cat - <(echo END OF OUTPUT) > output.txt

(с ksh, ударом или zsh), но это создает еще несколько дополнительных процессов и каналов ни для какого дополнительного преимущества.

6
27.01.2020, 21:50

Используйте подоболочку для группировки вывода как это,

(grep foo file.txt; echo "END OF OUTPUT") > output.txt

3
27.01.2020, 21:50

Это выполнит то, что Вы хотите

$ cat file.txt | grep 'foo' ; echo "END OF OUTPUT"
1
27.01.2020, 21:50
  • 1
    жаль поздний ответ, не видел, что другие ответили. –  Vishnu Kumar 13.02.2013, 12:26

Теги

Похожие вопросы