Как я могу выполнить двоичный поиск в текстовом файле определенной строки символов?

Похоже, вам не хватает перенаправления stderr из самого run_wrapper.sh, поэтому ошибки не проходят через grep и не попадают в файл журнала.

Попробуйте сделать так, если вас устраивает, чтобы и stdout и sdterr записывались в лог-файл

run_wrapper.sh 2>&1 | grep -v "Warning: Using a password" > output.log

Или если вы хотите, чтобы в лог-файл записывались только ошибки, а stdout оставался для записи в вызывающий терминал, попробуйте так

( run_wrapper.sh 2>&1 1>&3 | grep -v "Warning: Using a password" > output.log ) 3>&1
3
16.02.2016, 23:08
2 ответа

Grep может быть нестабильным с нечетными символами .. попробуйте:

grep --color='auto' -P -n "[\x80-\xFF]" record.txt |  iconv -f utf-16 -t utf-16

Это может вернуть ваши буквы .. цвета будут потеряны. Возможно, стоит погадать с помощью utf-16 и utf-8.

И убедитесь, что ваша консоль поддерживает uft-8 и не назначена какой-либо настройке ansi.

0
27.01.2020, 21:27

Это может быть связано с локалью. Если да, то использование языкового стандарта C (также известного как POSIX), где символы являются байтами, может работать:

LC_ALL=C grep --color='auto' -P -n "[\x80-\xFF]{2,10}" record.txt
2
27.01.2020, 21:27

Теги

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