Linux:文件夹中有分隔符的猫

在Linux中,如果你inputcat *,你会得到如下的东西:

line1从file1
来自file1的line2
来自file2的line1
来自file3的line1
来自file3的line2
来自file3的line3

我想要的是在文件之间显示一个分隔符。 像这样的东西:
line1从file1
来自file1的line2
XXXXXXXXXXXX
来自file2的line1
XXXXXXXXXXXX
来自file3的line1
来自file3的line2
来自file3的line3

用一个简单的方式打字是否容易?

如果你对分离器的外观不太感兴趣,

tail -n +1 * 

cd /to/your/directory; for each in *; do cat $each; echo "XXXXXXXXXXX"; done

 awk 'FNR==1 && NR!=1 {print "XXXXXXXXXXXX"}{print}' * 

要么

 awk 'FNR==1 {print "XXXXXX", FILENAME, "XXXXXX"}{print}' * 

要么

 awk 'FNR==1 {print "XXXXXX File no. " ++count, "XXXXXX"}{print}' * 

只使用Bash(无cat ):

 for file in *; do printf "$(<"$file")\nXXXXXXXXXXXX\n"; done 

编辑:

在AWK 4:

 awk 'BEGINFILE {print "XXXXXXXXXXXX"}{print}' * 

您可以使用任何分隔符,例如在此答案中的其他示例中的分隔符。 如果你想在每个文件末尾添加分隔符,请将BEGINFILE改为ENDFILE 。 它仍然可以出现在脚本的开头,因为它是一个有条件的(而不是暗示执行顺序)。