Вы только передаете ошибки по каналу к/dev/null, если Вы хотите предотвратить эхо arp-сканирования, дают весь вывод/dev/null и перезапускают последовательность задания.
Похоже, что grep думает, что Ваш XML-файл является двоичным, а не текст.
Если Вы хотите вынудить grep рассматривать Ваш файл как текст независимо от содержания, можно использовать --text
переключатель (принимающий GNU grep), как так:
grep --text "searchString" ./file.xml | wc -l
Обратите внимание, что, если все Вы хотите, должен считать соответствия, вероятно, лучше использовать grep --count
вместо того, чтобы передавать по каналу через wc -l
, сохранение Вас канал и вызов процесса.
Похож существуют некоторые редкие символы в начале Вашего файла и grep
обнаруживает его как двоичный файл. Можно попробовать --binary-files=text
опция.
grep --binary-files=text "searchString" file.xml | wc -l
Из страницы справочника:
--binary-files=TYPE
If the first few bytes of a file indicate that the file contains
binary data, assume that the file is of type TYPE. By default,
TYPE is binary, and grep normally outputs either a one-line
message saying that a binary file matches, or no message if
there is no match. If TYPE is without-match, grep assumes that
a binary file does not match; this is equivalent to the -I
option. If TYPE is text, grep processes a binary file as if it
were text; this is equivalent to the -a option. Warning: grep
--binary-files=text might output binary garbage, which can have
nasty side effects if the output is a terminal and if the
terminal driver interprets some of it as commands.
grep -a -c 'searchString' file.xml
и избегайте лишнего wc -l
.
– tripleee
09.07.2013, 16:26
Похоже, что у Вас есть ошибка при использовании ./file.xml
. Если Вы пробуете:
grep "searchString" file.xml | wc -l
Это имеет какие-либо проблемы?
file.xml
и ./file.xml
обратитесь к точно тому же файлу, с дополнительной системой поддержки это в последнем случае, настоящем имени file.xml
может безопасно начаться, например. -
.
– a CVn
09.07.2013, 16:09
grep --count
также возвратит количество строк. От человека:-c, --count Suppress normal output; instead print a count of matching lines for each input file.
– rush 09.07.2013, 16:31