【问题标题】:Remove Blank Space between fields删除字段之间的空格
【发布时间】:2013-05-13 20:34:12
【问题描述】:

input.txt 中有超过 400,000 个字段,由空格分隔。 例如0 2 1 1 1 2 重复了 400,000 次。

我需要像021112一样把它们放在一起。

我该怎么做?

【问题讨论】:

    标签: shell sed awk tr


    【解决方案1】:

    有很多方法可以做到这一点,最简洁的方法是使用tr 删除所有空格:

    tr -d ' ' < file > outfile
    

    或者sed:

    sed -i 's/ //g' file
    

    警告:sed 解决方案会用更改覆盖原始文件。

    既然您询问了awk,一般的解决方案是设置一个空白OFS 并使用$1=$1 强制重建,但它并不像前两个解决方案那样优雅:

    awk '{$1=$1}1' OFS= file > outfile
    

    【讨论】:

    • 没问题。您应该(除非出现更好的答案)通过单击它旁边的勾号来接受这个答案。这将显示您的问题已解决。
    • 如果有标签,可以使用s/[[:space:]]//g而不是s/ //g(或tr -d '[:space:]'