кошка * | grep что-то …, в чем файл является результатом?

А также веб-определенный материал я также советовал бы устанавливать некоторый аромат LDAP и почтового сервера. Работа с ними даст Вам хорошее чувство для того, что вовлечено в аутентификацию пользователя и управление (который должен в свою очередь иметь выгоду для Вас с веб-приложениями), и обменивающаяся сообщениями среда (от которого Вы могли бы получить практическое применение, но который все еще удобен для знания все равно).

Этот конкретный водоем может быть очень очень глубоким, и как далеко вниз Вы хотите пойти, ваше дело. Я советовал бы - по крайней мере, запускаться с - что Вы выбираете более простые инструменты, чтобы учиться на и попытаться исчерпать возможности того, что можно сделать с теми. Вы могли погрузиться голова сначала во что-то, что это является слишком большим для Вашего текущего опыта (и хорошо вне Вашей зоны комфорта), который был бы не хорошей вещью произойти.

8
задан 30 June 2011 в 07:53
2 ответа

Не используйте кошку для этого. Вместо этого используйте grep DATABASE * или grep -n DATABASE * (если Вы хотите знать номера строки, а также имена файлов), непосредственно.

Посмотрите бесполезное использование кошки.

Разъясниться немного больше: cat * на самом деле связывает все файлы, поскольку это подает их к grep через канал, таким образом, grep не имеет никакого способа знать, какое содержание принадлежит, к которому файлу, и действительно не может даже действительно знать, сканирует ли это файлы, или Вы просто вводите могущественный быстро. Это - все большой стандартный входной поток, после того как Вы используете канал.

Наконец, -H избыточно почти наверняка, поскольку grep печатает имя файла по умолчанию, когда это имеет больше чем один файл для поиска. Это могло быть несколько полезно в случае, если Вы хотите проанализировать вывод, тем не менее, поскольку существует некоторая возможность * шарик расширится до единственного файла, и grep в этом случае опустил бы имя файла.

22
ответ дан 2 December 2019 в 22:42

Использовать grep -H DATABASE * (примечание: если существует больше чем один файл в каталоге, -H является дополнительным).

Проблема, которую Вы имеете, состоит в том что с Вашей командой, cat * связывает все файлы вместе в одну большую путаницу, и затем | отправляет это в стандартный вход grep DATABASE. К тому времени, когда grep видит данные, информацию о том, куда это прибыло из, был потерян. Решение состоит в том, чтобы иметь grep, делают работу просмотра отдельных файлов, поэтому когда это находит соответствие, это знает, из какого файла это прибыло.

6
ответ дан 2 December 2019 в 22:42

Теги

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