我想捕获目录中的所有文件,但在每个文件之间包含一些间隔符。
答案 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