0

我应该如何修改此行以在要连接的每个文件之间添加一个新行 (\n)?

find /disk/data/source/* -name '*.xml' -exec cat {} \; > /home/userid/merged-file.xml
4

3 回答 3

2

find-exec在一个命令中接受多个 s。例如:

find /disk/data/source/* -name '*.xml' -exec cat {} \; -exec echo "" \; > /home/userid/merged-file.xml 
于 2019-08-21T12:38:51.303 回答
2

使用 awk 代替 cat:

find /disk/data/source/* -name '*.xml' \
    -exec awk 'NR!=FNR&&FNR==1{print ""} 1' {} + > /home/userid/merged-file.xml
于 2019-08-21T12:40:36.477 回答
1

由于您已经在使用find,请尝试以下操作:

find /disk/data/source/* -name '*.xml' -exec cat {} \; -exec echo \; > /home/userid/merged-file.xml

如果你想去掉最后多余的换行符,你可以添加| head -n-1.

于 2019-08-21T12:38:51.123 回答