grep - 让grep按时间顺序搜索多个文件
问题描述
我有一个目录,里面有很多这样的文件,
如果我使用 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 有什么区别?
解决方案
原因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 能够继续。
推荐阅读
- javascript - 使用 Ramda 将一组 id 映射到具有这些 id 的对象
- python - pd.read_csv:utf-8'编解码器无法解码位置 61 中的字节 0x98:无效的起始字节
- javascript - 如何在异步测试中计时 sinon 间谍
- android - 如何禁用 Android Studio 3.5 按字母顺序排序 xml 标签
- r - 循环网络爬虫,都是NA,但是一步一步正常
- javascript - 保存动态添加的包含图表的 div
- python - 如何从循环中的最后一项中删除昏迷?
- django - Django:在运行时加载模板
- jquery - Daterange picker posting data with ajax
- django - django 在 / 'file' 处引发 MultiValueDictKeyError