首页 > 解决方案 > 我可以在使用 gnu `find` 处理每个文件后插入一个空行吗?

问题描述

使用 gnu find,我想用空行分隔为每个文件生成的输出。我尝试添加-printf '\n',但这只执行了一次(奇怪的是,在第一个文件的输出之后,因为我把它放在命令行的末尾)。

这是我正在尝试的示例:

find . -name eval_results.txt -print -exec cat {} \; -printf '\n'

标签: bashshellawkgnu

解决方案


请您尝试关注一次。我尝试检查.csv文件,您也可以根据需要更改它们。

find -type f -iname "*.csv" -print -exec awk '1;END{print ""}' {} \;

输出如下。(根据我系统的文件内容输出文件)

./file2.csv
timestamp, forecast, v1, v2 
2016-02-02 00:00:00, 68.56, 012, .23
2016-02-02 00:10:00, 23.24, .25, .32

./file1.csv
datetime, forecast
2016-02-02 00:00:00, 23.34
2016-02-02 00:10:00, 29.23

./file3.csv
timestamp, forecast[ma], v1
2016-02-02 00:00:00, 56.32, 32
2016-02-02 00:10:00, 25.21, 56

虽然我也测试了你的命令并且它对我来说工作正常(你可以将它作为替代并尝试一次)。上面的命令是find (GNU findutils) 4.7.0-git在 Ubuntu 系统上的 find 上测试的,仅供参考。


推荐阅读