linux - 如何从 N 个多行文件中获取一个包含 N 行的输出文件?

标签 linux bash shell command-line

我正在寻找一些有效的方法来将多个多行文件连接成一个文件 - 这是三个输入文件的示例:

1.txt:

a b
c d

2.txt:

e f
g 
h 

3.txt:

ijklmn

输出.txt:

a b c d
e f g h 
ijklmn

(用单个空格替换每个换行符)。您可以推荐哪种方式?

最佳答案

使用 BASH for 循环:

for i in [0-9]*.txt; do tr '\n' ' ' < "$i"; echo; done > output.txt

cat output.txt
a b c d
e f g h
ijklmn

如果你想在每个换行符之前去除一个结束空格,那么使用:

for i in [0-9]*.txt; do tr '\n' ' ' < "$i"; echo; done | sed 's/ *$//' > output.txt

关于linux - 如何从 N 个多行文件中获取一个包含 N 行的输出文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34391895/

相关文章:

linux - 在 bash 中重命名多个文件

linux - 在 linux 中替换文件中的单引号和双引号

linux - Cat 文件执行一些操作将文件输出附加到第一个文件

linux - 如何在 bash 中解决这个安全难题?

linux - 在 bash 中抑制 telnet 的输出

python - 将模块添加到 pythonpath - 没有任何作用

json - 在Bash中使用jq按对象属性值的长度降序对它们进行排序

bash - && 在 shell 中如何工作?

python - pwd vs 文件目录

bash - Bash 命令中单引号内变量的扩展