Назад | Перейти на главную страницу

Grep ничего не возвращает

Это команда grep, которую я использовал

grep -ic address log*

На выходе получается 0. Я точно знаю, что слово «адрес» встречается в файле журнала более 60 раз. Но я все равно получаю 0.

Теперь я скопировал содержимое журнала в новый файл log2

 grep -ic address log2 

выходов 65! Я скопировал содержимое, выделив все и скопировав вставку вместо команды cp. Я проверил и убедился, что с правами доступа к файлам все в порядке.

ls -l показать это

-rwxrwxrwx 1 root    root              91694 Jul 26 16:18 log

-rw-r--r-- 1 root    root              45220 Jul 30 14:16 log2*

Единственное несоответствие, которое я вижу, - это то, что размер первого журнала вдвое превышает размер его копии. Это проблема формата?

Когда я открываю файл в vim, он показывает

[преобразовано] [дос] как формат.

Как я могу это исправить?

Любая помощь приветствуется.

Поскольку ваш файл log в два раза больше log2, но должен быть точной копией, вполне вероятно, что он закодирован в UCS-2. Файл был создан в Windows?

Пытаться

file log log2

Редактировать:
Вывод файла в комментарии подтверждает это.

Используйте это для прозрачного grep

recode ucs2..utf8 < log | grep ...

Или это преобразовать файл

recode ucs2..utf8 log
grep ... log