позвольте grep искать в нескольких файлах во времени - PullRequest
0 голосов
/ 25 мая 2018

У меня есть каталог с таким количеством файлов,

enter image description here

, если я использую grep для поиска строки в этих файлах, тогдабудет выполнять поиск по этому порядку, файл log.0, затем log.1 ....

, но я хочу, чтобы grep осуществлял поиск по времени, затем я делаю это так,

grep -i 'stg_data.li51_cicmpdtap0521' 
$(ls -ltr sequencer_cmbcs_seq_debug.log*) | less

но я получаю эту ошибку

grep:invalid option -- -

после того, как я перехожу на это, это сработало,

grep -i 'stg_data.li51_cicmpdtap0521' $(ls -tr 
sequencer_cmbcs_seq_debug.log*) | less

почему ls -ltr не работает, а ls -tr работает?в чем разница между -l и без -l?

1 Ответ

0 голосов
/ 25 мая 2018

Причина ls -ltr не работает в том, что grep пытается использовать весь «длинный» вывод возвращенного списка каталогов.По сути, это означает что-то вроде этого:

-rw-rw-rw-  1 user  staff    473 May 24 18:14 file

Что даст вам команду grep, подобную этой:

grep -i 'string' -rw-rw-rw-  1 user  staff    473 May 24 18:14 file | less

Обратите внимание на тире в первом столбце (пример 1);grep не может интерпретировать, что делать с входным файлом, и возвращает «неверную опцию».Когда вы изменили команду ls для удаления длинного вывода -l, теперь у вас просто есть имена файлов, и grep может продолжить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...