使用分隔符加入目录中的所有文件

Dog*_*ert 8 unix bash

我有一个包含数百个文件的目录(每个文件都有几个字符).我想将它们连接到一个带有分隔符"|"的文件中.

我试过了

find . -type f | (while read line; do; cat $line; echo "|"; done;) > output.txt 
Run Code Online (Sandbox Code Playgroud)

但这创造了一个无限循环.

Sha*_*hin 10

您可以排除output.txt从输出find使用-not -name output.txt(或者你已经在下面的评论中指出,只需将目标目录之外的输出文件).

例如:

find . -type f -not -name output.txt -exec cat {} \; -exec echo "|" \; > output.txt
Run Code Online (Sandbox Code Playgroud)

我也冒昧地用while/cat/echo几个-exec参数代替你,所以我们可以用一个find电话完成整个事情.