从两个创建一行(Bash)

时间:2015-02-12 13:42:35

标签: bash awk grep

我已经玩过grep,awk和sed了一段时间,但我对此有点困惑。

我设法获得了一个具有以下格式的文件(虚拟数据):

Datacentreone
1.1.1.1.

Datacentretwo
2.2.2.2

Google 
8.8.8.8

但是我需要在单行上得到它:

Datacentreone 1.1.1.1
Datacentretwo 2.2.2.2
Google 8.8.8.8

我可以用Perl或PHP编写一些东西来为我做,但是我想知道是否可以使用命令行工具轻松地做这样的事情,或者使用BASH看起来不像是这样?

1 个答案:

答案 0 :(得分:2)

通过GNU awk,

$ awk -v RS="\n\n" '{print $1,$2}' file
Datacentreone 1.1.1.1.
Datacentretwo 2.2.2.2
Google 8.8.8.8

此处记录分隔符设置为\n\n即;一个空白行。这会覆盖\n变量的默认值RS。因此awk将一行或两行或多行视为单个记录,直到找到空行。