Как найти текстовые файлы, не содержащие текст в Linux? Как найти файлы не, содержащие какой-то текст в Linux? В основном я ищу обратный следующий find . -print | xargs grep -iL "somestring" Ответ 1 Команда, которую вы цитируете, по иронии судьбы делает именно то, что вы описываете. Проверьте его! echo "hello" > a echo "bye" > b grep -iL BYE a b Говорит только. Я думаю, вы можете ввести в заблуждение -L и -l find . -print | xargs grep -iL "somestring" является обратным к find . -print | xargs grep -iL "somestring" Кстати, рассмотрим find . -print0 | xargs -0 grep -iL "somestring" Или даже grep -IRiL "somestring" . Ответ 2 Если вы используете скрипт "find", выполните "grep" также в папке: [[email protected] test]# find | xargs grep -Li 1234 grep: .: Is a directory . ./test.txt ./test2.txt [[email protected] test]# Используйте "grep" напрямую: # grep -Li 1234 /root/test/* /root/test/test2.txt /root/test/test.txt [[email protected] test]# или укажите "найти" параметры "-type f"... даже если вы используете поиск, вы добавите больше времени (сначала список файлов, а затем создайте grep). Ответ 3 Вы можете сделать это только с помощью grep (без поиска). grep -riL "somestring" . Это объяснение параметров, используемых на grep -L, --files-without-match each file processed. -R, -r, --recursive Recursively search subdirectories listed. -i, --ignore-case Perform case insensitive matching. Если вы используете l нижнем регистре, вы получите противоположное (файлы с совпадениями) -l, --files-with-matches Only the names of files containing selected lines are written
Ответ 1 Команда, которую вы цитируете, по иронии судьбы делает именно то, что вы описываете. Проверьте его! echo "hello" > a echo "bye" > b grep -iL BYE a b Говорит только. Я думаю, вы можете ввести в заблуждение -L и -l find . -print | xargs grep -iL "somestring" является обратным к find . -print | xargs grep -iL "somestring" Кстати, рассмотрим find . -print0 | xargs -0 grep -iL "somestring" Или даже grep -IRiL "somestring" .
Ответ 2 Если вы используете скрипт "find", выполните "grep" также в папке: [[email protected] test]# find | xargs grep -Li 1234 grep: .: Is a directory . ./test.txt ./test2.txt [[email protected] test]# Используйте "grep" напрямую: # grep -Li 1234 /root/test/* /root/test/test2.txt /root/test/test.txt [[email protected] test]# или укажите "найти" параметры "-type f"... даже если вы используете поиск, вы добавите больше времени (сначала список файлов, а затем создайте grep).
Ответ 3 Вы можете сделать это только с помощью grep (без поиска). grep -riL "somestring" . Это объяснение параметров, используемых на grep -L, --files-without-match each file processed. -R, -r, --recursive Recursively search subdirectories listed. -i, --ignore-case Perform case insensitive matching. Если вы используете l нижнем регистре, вы получите противоположное (файлы с совпадениями) -l, --files-with-matches Only the names of files containing selected lines are written