让grep按时间顺序搜索多个文件

时间:2018-05-25 15:59:34

标签: grep

我有一个包含很多这样的文件的目录,

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 :(得分:1)

ls -ltr不起作用的原因是因为grep试图使用整个" long"返回目录列表的输出。基本上相同的东西是这样的:

-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能够继续。