Bash脚本,剪切线并粘贴到下一个

时间:2017-02-20 09:16:46

标签: linux bash line

我是linux的新手,不知道如何解决我的问题。我有这样的输出(约200行):

Peter Griffin
222
Vasya Pupkin
333

我需要将其转换为:

222, Peter Griffin
333, Vasya Pupkin

我试过

ldapsearch -LLL -D $bindDN -w $password -p $port -h $host -b $searchBase -S "telephoneNumber" -s sub cn telephoneNumber | grep -v "dn: " | grep "\\n" | awk -F": " '{ print $2 }'

我怎么能意识到这一点?

2 个答案:

答案 0 :(得分:1)

xargs -L2 < inputfile|awk '{x=$NF;$NF=""; print x "," $0 }'
222,Peter Griffin
333,Vasya Pupkin

说明:xargs -L2是将两个连续的行组合成一个。将输入更改为单行后,将其提供给awk以进行列操作。

Awk单独解决方案:

awk 'NR%2{x=$0;next} {print $0,",",x}' inputfile

答案 1 :(得分:1)

可以单独在Awk中完成,

awk '{getline nextLine; print nextLine,$0}' OFS="," file
222,Peter Griffin
333,Vasya Pupkin

因此,使用您的命令,只需将产生这些行的输出传递给上面的Awk

.. | awk '{getline nextLine; print nextLine,$0}' OFS=","