【发布时间】:2009-10-31 01:16:24
【问题描述】:
我想对目录中的所有文件进行分类,但在每个文件之间添加一些分隔符。
【问题讨论】:
标签: unix
我想对目录中的所有文件进行分类,但在每个文件之间添加一些分隔符。
【问题讨论】:
标签: unix
使用 awk
awk 'FNR==1{print ""}{print}' file* > out.txt
【讨论】:
awk 'FNR==1{}{print}' file* > out.txt 对我来说效果更好。谢谢。
试试
find . -type f -exec cat {} \; -exec echo "-- spacer --" \;
显然,'spacer' 可以比这里使用的简单示例更多。
【讨论】:
echo "" 作为空行。我应该说间隔可能比示例更多或更少。
echo '' 或 echo 怎么样?
-printf "\n"“动作”也是可行的;我相信它也可以避免调用 echo 或任何其他子进程。
您可能想查看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
对于ls,您真的不需要-1。
【讨论】:
ls。只需for f in *; do cat ... (porkmail.org/era/unix/award.html#ls)
我认为最简单的方法是使用paste 命令:
paste $(ls *) > file.out
【讨论】:
echo "" > blank.txt
cat f1.txt blank.txt f2.txt blank.txt f3.txt
处理目录中的所有文件(假设 ksh 像 Shell)
for file in * ; do
cat $file >> result.txt
echo "" >> result.txt
done
【讨论】: