在Bash中连接行

Ste*_*ven 9 awk sed

大多数命令行程序一次只能在一行上运行.

我可以使用一个通用的命令行实用程序(echo,sed,awk等)来连接每一组两行,或者我是否需要从头开始编写脚本/程序来执行此操作?

$ cat myFile
line 1
line 2
line 3
line 4

$ cat myFile | __somecommand__
line 1line 2
line 3line 4
Run Code Online (Sandbox Code Playgroud)

Did*_*set 11

sed 'N;s/\n/ /;'
Run Code Online (Sandbox Code Playgroud)

抓住下一行,用空格替换换行符.

seq 1 6 | sed 'N;s/\n/ /;'
1 2
3 4
5 6
Run Code Online (Sandbox Code Playgroud)

  • OT,但使用`seq 1 6`代替`echo`命令. (3认同)

gho*_*g74 8

$ awk 'ORS=(NR%2)?" ":"\n"' file
line 1 line 2
line 3 line 4

$ paste - -  < file
line 1  line 2
line 3  line 4
Run Code Online (Sandbox Code Playgroud)

  • 粘贴+1.注意,默认分隔符是tab,使用`-d""`如果你真的希望你的线被粉碎在一起. (3认同)