如何使用一行命令同时解析多个文件(Linux/Unix)
How can I parse many files at the same time with one line commands(Linux/Unix)
我需要解析的日志文件很多,下面是示例结构。
我需要用一行命令(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, [=10=]}' */logs/debug.log
我需要解析的日志文件很多,下面是示例结构。 我需要用一行命令(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, [=10=]}' */logs/debug.log