cat多个txt文件后的换行符

时间:2015-02-05 12:54:03

标签: bash newline cat

我试图使用bash从几个单行文本文件中读取数据,每个文本文件都在自己的目录中,并将它们分成一个主文件,每个文件都在一个新行上。

我输入文件的数据结构如此;

Store# online backoffice win7

我循环遍历每个目录,查找并将文件内容捕捉到变量。问题是我似乎无法通过每次传递将数据放在换行符上。这是我的代码;

#!/bin/bash

#Find all sites
stores=$(find /home/sites*/ -maxdepth 0)


for store in $stores; do
  final=${final}$(cat ${store}\processors.txt)"\n"
done

printf "${final}" > ~/master.txt

我在主文件中得到的是

Store# online backoffice win7Store# online backoffice win7

1 个答案:

答案 0 :(得分:0)

您可以通过以下单行替换脚本:

find /home/sites* -name "processors.txt" -exec cat {} + > ~/master.txt

正如您将在Windows机器中阅读一样,您可能希望在行尾插入返回托架:

 find /home/sites* -name "processors.txt" -exec cat {} + | sed -e 's/$/\r/' > ~/master.txt