grep для строки в нескольких файлах под tar и напечатайте wc -l

Нет, /dev/stdin и /dev/stdout являются неверными устройствами. Это не терминальные устройства, это псевдонимы для стандартного ввода и стандартного вывода соответственно. Стандартный ввод и стандартный вывод по определению являются файловыми дескрипторами, которые приложения ожидают открыть и которые имеют обычное значение (файловые дескрипторы 0 и 1 соответственно, есть также 2, что является стандартной ошибкой). Такие устройства, как /dev/stdin и /dev/stdout, полезны, когда приложению требуется имя файла, но пользователь приложения хочет, чтобы оно обращалось к определенному файловому дескриптору, а не открытие какого-то файла. В зависимости от варианта Unix они могут даже не быть файлами устройств; например, в Linux это символические ссылки на /proc/self/fd/0 и друзей, а это, в свою очередь, «волшебные» символические ссылки на любой файл, который процесс уже открыл в этом файле. дескриптор.

Изменение разрешений для /dev/stdin и /dev/stdout изменит только то, что происходит, когда эти имена файлов используются явно. Это не влияет ни на что, связанное с терминалом, и не влияет на обычное использование стандартного ввода и стандартного вывода, поскольку разрешения имеют значение только при открытии определенного имени файла.

Что делает mesg, так это изменяет разрешения управляющего терминала процесса.Для приложения, работающего в терминале, терминал открыт при стандартном вводе, стандартном выводе и стандартной ошибке (файловые дескрипторы 0, 1 и 2). Вы можете использовать команду tty, чтобы узнать, что такое терминальное устройство. mesg n эквивалентно chmod gw "$(tty)" и mesg y эквивалентно chmod g+w "$(tty)" .

0
03.05.2017, 13:54
1 ответ

Как уже упоминалось в комментариях, вы можете сделать это одной командой zgrep:

zgrep -c "sent" /home/myname/April/*.tar.gz

Из руководства grep:

-c, --count

Подавить нормальный вывод; вместо этого напечатайте количество совпадающих строк для каждого входного файла. С опцией -v, --invert-match (см. ниже) подсчитайте несовпадающие строки. (-c определяется POSIX.)

4
28.01.2020, 02:19

Теги

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