用换行替换替代空格?

时间:2015-06-13 19:48:58

标签: unix replace

我正在尝试使用UNIX替换替换空格。 我尝试在UNIX中使用tr命令,但无法修改它以替换备用空格。

示例输入:
0 1 2 3 4 5
样本输出:
0 1
2 3
4 5

我们如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

在这种情况下,

awk可能会有所帮助:

echo "0 1 2 3 4 5" | awk '
{
    for (i=1; i<=NF; i++)
    {
        if ((i-1)%2 == 0)
        {
            printf "%d ",$i;
        }
        else
        {
            print $i
        }
    }
}
'

我们按空间分割并有6个项目。然后,我们循环遍历所有字段并输出每个字段。每个其他字段都以print $i的新行输出;否则我们使用printf "%d ",$i;打印而不创建新行。

答案 1 :(得分:0)

echo "0 1 2 3 4 5" | sed 's/\([^ ][^ ]* [^ ][^ ]*\) */\1\n/g'

使用'+'符号的GNU sed可以缩短这一点。