我有 10 个文件,我希望将这些内容复制到一个文件中。
10个文件的内容应分别用文件名分隔(类似于
blockinfile
中的标题)。
示例
$ cat /tmp/file1.txt # -> This is first file
$ cat /tmp/file2.txt # -> This is second file
预期结果来自
cat /tmp/merged_file
ANSIBLE MANAGED BLOCK file1.txt
This is first file
ANSIBLE MANAGED BLOCK file1.txt
ANSIBLE MANAGED BLOCK file2.txt
This is second file
ANSIBLE MANAGED BLOCK file2.txt
如果只有1个文件,可以通过blockinfile来实现。想知道上述是否可以通过
blockinfile
,或者任何其他可行的方法来实现。
谢谢。
使用 GNU awk 作为 BEGINFILE 和 ENDFILE(未经测试,因为没有提供示例输入):
awk '
BEGIN { base = "ANSIBLE MANAGED BLOCK " }
BEGINFILE { str = base gensub(".*/","",1,FILENAME); print str }
{ print }
ENDFILE { print str }
' /tmp/file{1..10}.txt