Bash 脚本将查找文件传递给 awk [Mac]
Bash script pass find files to awk [Mac]
我的目录中有一些 gzip 日志文件,它们看起来像这样:
log/day_1_time_log_1.log.gz
...
log/day_1_time_log_100.log.gz
log/day_1_location_log_1.log.gz
...
log/day_1_location_log_100.log.gz
我想从所有包含字符串 time
的日志中取出第 4 列(一些 json
字符串)并将它们放入一个文件中。这就是我所做的,我收到 zcat: unknown compression format
错误。
find logs/* -name *time* | zcat | awk -F"\t" '{ print }' > output.json
我的代码有什么问题?我可以将其直接传递给 awk
吗?
您可以使用 xargs
:
find logs/ -name '*time*.log.gz' -print0 |
xargs -0 -I % gzcat % | awk -F'\t' '{print }' > output.json
我的目录中有一些 gzip 日志文件,它们看起来像这样:
log/day_1_time_log_1.log.gz
...
log/day_1_time_log_100.log.gz
log/day_1_location_log_1.log.gz
...
log/day_1_location_log_100.log.gz
我想从所有包含字符串 time
的日志中取出第 4 列(一些 json
字符串)并将它们放入一个文件中。这就是我所做的,我收到 zcat: unknown compression format
错误。
find logs/* -name *time* | zcat | awk -F"\t" '{ print }' > output.json
我的代码有什么问题?我可以将其直接传递给 awk
吗?
您可以使用 xargs
:
find logs/ -name '*time*.log.gz' -print0 |
xargs -0 -I % gzcat % | awk -F'\t' '{print }' > output.json