这是我输入的内容,我希望在"". 但是我已经在服务器中获得了整个日志:
for i in `ls *.log.gz`; do zcat $i | grep "U2779897722719715411" >> sara.log; done ; *
Run Code Online (Sandbox Code Playgroud)
我应该在这个循环中改变什么才能只找到带有这个关键字的日志?
谢谢你。
该zgrep命令对于压缩文件中的 grepping 非常有用,并且无需通过管道zcat传输到grep. 您也不需要使用 for 循环通过globbing(shell 模式匹配)创建文件列表。
zgrep U2779897722719715411 *.log.gz >> sara.log
Run Code Online (Sandbox Code Playgroud)
该命令将输出文件名和包含以:字符分隔的 U2779897722719715411 的行。
如果您不想要文件名前缀,您可以使用该-h选项zgrep:
zgrep -h U2779897722719715411 *.log.gz >> sara.log
Run Code Online (Sandbox Code Playgroud)
这也可以通过循环来实现,但避免使用ls, 并在循环完成后执行重定向到文件:
for i in *.log.gz ; do zgrep U2779897722719715411 "$i" ; done >> sara.log
Run Code Online (Sandbox Code Playgroud)
或者,如果您只想要包含该用户字符串 U2779897722719715411 的文件的文件名,则可以在上述任一命令中使用-l选项zgrep:
zgrep -l U2779897722719715411 *.log.gz >> sara.log
Run Code Online (Sandbox Code Playgroud)
或者
for i in *.log.gz ; do zgrep -l U2779897722719715411 "$i" ; done >> sara.log
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
674 次 |
| 最近记录: |