如何在我与“cat”连接的文件之间包含空行?

时间:2009-10-31 01:16:25

标签: unix

我想捕获目录中的所有文件,但在每个文件之间包含一些间隔符。

5 个答案:

答案 0 :(得分:12)

使用awk

awk 'FNR==1{print ""}{print}' file* > out.txt

答案 1 :(得分:9)

尝试

find . -type f -exec cat {} \; -exec echo "-- spacer --" \;

显然,'spacer'可能不仅仅是这里使用的简单例子。

答案 2 :(得分:2)

您可能希望看到pr(1),这可能会做您想要的开箱即用。

要自己滚动,请展开此posix shell脚本片段:

ls -1  | while read f; do cat "$f"; echo This is a spacer line; done > /tmp/outputfile

这可能更容易写成:

ls -1 | while read f; do
    cat "$f"
    echo This is a spacer line
done > /tmp/outputfile

-1

确实不需要ls

答案 3 :(得分:-1)

我认为最简单的方法是使用paste命令:

paste $(ls *) > file.out

答案 4 :(得分:-2)

echo "" > blank.txt
cat f1.txt blank.txt f2.txt blank.txt f3.txt

处理目录中的所有文件(假设像Shell一样使用ksh)

for file in * ; do
   cat $file >> result.txt
   echo "" >> result.txt
done