我有一个包含很多这样的文件的目录,
如果我使用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这里的区别?
答案 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能够继续。