一个 bash 命令输出这个:
Runtime Name: vmhba2:C0:T3:L14
Group State: active
Runtime Name: vmhba3:C0:T0:L14
Group State: active unoptimized
Runtime Name: vmhba2:C0:T1:L14
Group State: active unoptimized
Runtime Name: vmhba3:C0:T3:L14
Group State: active
Runtime Name: vmhba2:C0:T2:L14
Group State: active
Run Code Online (Sandbox Code Playgroud)
我想把它用管道输送到某个东西上,使它看起来像这样:
Runtime Name: vmhba2:C0:T1:L14 Group State: active
Runtime Name: vmhba3:C0:T3:L14 Group State: active unoptimized
Runtime Name: vmhba2:C0:T2:L14 Group State: active
[...]
Run Code Online (Sandbox Code Playgroud)
即删除所有其他换行符
我试过了,... |tr "\nGroup" " "但它删除了所有换行符并吃掉了其他一些字母。谢谢
gle*_*man 94
现在无法测试,但是
... | paste - -
Run Code Online (Sandbox Code Playgroud)
应该做
cyb*_*x86 11
一种可能性是:
awk 'ORS=NR%2?" ":"\n"'
Run Code Online (Sandbox Code Playgroud)
如果行号能被 2 整除,则以新行结束,否则以空格结束。
(测试:CentOS 6,GNU Awk 3.1.7)
使用 sed(见解释):
sed ':a;N;$!ba;s/\nGroup/ Group/g'
Run Code Online (Sandbox Code Playgroud)
进一步阅读:
如果您想使用sed,则没有理由将整个文件读入内存。您可以像这样合并所有其他行:
sed 'N;s/\n/ /' inputfile
Run Code Online (Sandbox Code Playgroud)
使用您想要的任何字符而不是空格。
这是使用 awk 的另一种方式:
awk '{printf "%s", $0; if (getline) print " " $0; else printf "\n"}' inputfile
Run Code Online (Sandbox Code Playgroud)
所述if/else手柄其中存在奇数个文件中的行的情况下。没有它,奇怪的最后一行会打印两次。否则,为了比较,你可以这样做:
awk '{printf "%s", $0; getline; print " " $0}'
Run Code Online (Sandbox Code Playgroud)