2011-07-20 52 views
1

我期待将多个文本文件与分隔符及其文件名相结合,然后擦除所有新行并将所有内容都放在一行上。将分隔符合并为一行的文本文件

到目前为止,我可以用两个不同的脚本做到这一点:

find -type f -name '*.txt' -print | while read filename; do echo "±±±±± $filename"; cat "$filename"; done > files.txt; 

tr '\n' ' ' <files.txt> desiredoutput.txt 

我已经试过这两个有没有用结合。有什么建议么?

回答

0

结合起来会做每个$filenametr代替cat最简单的方法:

 
find -type f -name '*.txt' -print | while read filename 
do echo -n "±±±±± $filename " # The -n suppresses the \n at the end of the line. 
    tr '\n' ' ' < "$filename" 
    echo -n ' ' # Add a terminating delimiter 
done > desiredoutput.txt; 
+0

非常感谢您!起初我不小心打了一遍,做了一个3GB的TXT文件哈哈。但它现在都在运作!谢谢 – Chris

+0

其实这个文件夹我确实导致它进入一个无限循环,并使用我的所有硬盘驱动器。任何想法为什么会发生? – Chris

+1

也许'find'找到输出文件并将其用作输入文件(它匹配'* .txt'')。 – MRAB

相关问题