需求是查看或是查找目录下所有文件名包含特定字符的文件内容,比如:查看或者是查找 /var/log/ 目录下的所有 messages 开头的系统日志文件,在 centos 7 上执行 cat /var/log/messages* 或 grep 'test' /var/log/messages* 命令只检索 /var/log/messages-20000000 这样的文件却不检索 /var/log/messages 这个文件,是什么原因呢,我记得这个命令在其他系统上执行都是正常的,另外为了排除星号非空问题 我把文件名写成短一点的 /var/log/mess* 结果还是一样。
1
julyclyde 2023-01-10 12:43:18 +08:00
你那文件是压缩的吧?
|
3
rrfeng 2023-01-10 13:12:22 +08:00
因为 /var/log/messages 里没有你要找的内容呗
|
4
killva4624 2023-01-10 13:19:10 +08:00
我觉得 3L 正解...
|
5
acbot OP @rrfeng
@killva4624 /var/log/messages 和 /var/log/messages-20000000 这样的文件都有要检索的内容,grep 'test' /var/log/messages 路径后面不带星都可以找到内容。 |
6
alexsz 2023-01-10 13:30:49 +08:00
这样呢,find /var/log -name "messages*" -type f|xargs grep 'test'
|
7
v2wtf 2023-01-10 13:37:59 +08:00
grep -nir /var/log
|
8
stein42 2023-01-10 13:40:11 +08:00
执行下这些命令看看问题出在哪一步
ls /var/log/messages* ls -hl /var/log/messages* grep 'test' /var/log/messages grep 'test' /var/log/messages /var/log/messages-20000000 grep 'test' /var/log/messages* 最好贴上你执行的命令和结果。 |
9
momocraft 2023-01-10 13:44:19 +08:00
贴一下你用的 shell ,和 set -o 命令的输出
|
14
killva4624 2023-01-10 15:07:32 +08:00
@acbot 排序问题是指?
|
15
acbot OP @killva4624 cat 或 grep /var/log/messages* 那么有可能 /var/log/messages2 在前,也有可能 /var/log/messages1 那么内容打印的时候顺序就不一定,就出现了问题
|