mis*_*way 0 bash shell merge sed cat
我希望将两个文本文件合并为一个,其中一个文本文件中的所有行都变成奇数行号,另一个文件变成偶数行号,例如将文件编织在一起
输入1.txt
1, 267, Note_on_c, 0, 67, 100
1, 758, Note_on_c, 0, 58, 100
1, 1248, Note_on_c, 0, 79, 100
1, 1739, Note_on_c, 0, 52, 100
Run Code Online (Sandbox Code Playgroud)
输入2.txt
1, 368, Note_off_c, 0, 67, 127
1, 936, Note_off_c, 0, 58, 127
1, 1415, Note_off_c, 0, 79, 127
1, 1917, Note_off_c, 0, 52, 127
Run Code Online (Sandbox Code Playgroud)
并需要组合这些文本文件来创建以下输出
1, 267, Note_on_c, 0, 67, 100
1, 368, Note_off_c, 0, 67, 127
1, 758, Note_on_c, 0, 58, 100
1, 936, Note_off_c, 0, 58, 127
1, 1248, Note_on_c, 0, 79, 100
1, 1415, Note_off_c, 0, 79, 127
1, 1739, Note_on_c, 0, 52, 100
1, 1917, Note_off_c, 0, 52, 127
Run Code Online (Sandbox Code Playgroud)
所以我希望将这些文件合并到单词 weave 的真实位置
使用 GNUsed的R命令:
sed 'R input2.txt' input1.txt
Run Code Online (Sandbox Code Playgroud)
输出:
1, 267, Note_c, 0, 67, 100 1, 368, Note_off_c, 0, 67, 127 1, 758, Note_on_c, 0, 58, 100 1, 936, Note_off_c, 0, 58, 127 1, 1248, Note_on_c, 0, 79, 100 1, 1415, Note_off_c, 0, 79, 127 1, 1739, Note_on_c, 0, 52, 100 1, 1917, Note_off_c, 0, 52, 127
从man sed:
R filename:追加从文件名读取的行。该命令的每次调用都会从文件中读取一行。这是一个 GNU 扩展。
另一种选择是使用paste换行符作为分隔符
paste -d '\n' input1.txt input2.txt
Run Code Online (Sandbox Code Playgroud)
1, 267, Note_on_c, 0, 67, 100
1, 368, Note_off_c, 0, 67, 127
1, 758, Note_on_c, 0, 58, 100
1, 936, Note_off_c, 0, 58, 127
1, 1248, Note_on_c, 0, 79, 100
1, 1415, Note_off_c, 0, 79, 127
1, 1739, Note_on_c, 0, 52, 100
1, 1917, Note_off_c, 0, 52, 127
Run Code Online (Sandbox Code Playgroud)
从man paste:
写入由每个 FILE 中顺序对应的行组成的行