我需要解析的日志文件很多,下面是示例结构。 我需要用一行命令(Linux/Unix)同时查看每个目录下的debug.log文件内容。可能与 awk/sed/cat 等。 目录数量(1、2、3、4 ...)各不相同。我需要用名称而不是“*”来限制目录。
1/logs/debug.log
2/logs/debug.log
3/logs/debug.log
4/logs/debug.log
5/logs/debug.log
6/logs/debug.log
如果每条debug.log内容如下:
In 1/logs/debug.log: finished.
Please go ahead next step.
In 2/logs/debug.log: failed.
In 3/logs/debug.log: finished.
Please go ahead next step.
In 4/logs/debug.log: finished.
Please go ahead next step.
In 5/logs/debug.log: Error.
In 6/logs/debug.log: finished.
Please go ahead next step.
预期产出:
1: finished.
1: Please go ahead next step.
2: failed.
3: finished.
3: Please go ahead next step.
4: finished.
4: Please go ahead next step.
5: Error.
6: finished.
6: Please go ahead next step.
很抱歉提出非常复杂的问题,但如果您能告诉我解决方案的方向,我们将不胜感激。
我得到了答案
需要使用'Loop'遍历所有子目录。
最佳答案
awk -v OFS=': ' 'FNR==1{dir=FILENAME; sub("/.*","",dir)} {print dir, $0}' */logs/debug.log
关于linux - 如何使用一行命令同时解析多个文件(Linux/Unix),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38603346/