awk - 如何删除前导和尾随空格?

标签 awk whitespace gsub removing-whitespace

我正在使用 awk '{gsub(/^[ \t]+|[ \t]+$/,""); print;}' in.txt > out.txt删除前导和尾随空格。

问题是输出文件实际上有尾随空格!所有行的长度相同 - 它们右填充空格。

我错过了什么?

更新 1

问题可能是由于尾随空格不是“正常”空格而是\x20 字符(DC4)。

更新 2

我用过 gsub (/'[[:cntrl:]]|[[:space:]]|\x20/,"")它起作用了。
两件奇怪的事:

  • 为什么\x20 不被视为控制字符?
  • 使用 '[[:cntrl:][:space:]\x20不起作用。为什么?
  • 最佳答案

    这个命令对我有用:

    $ awk '{$1=$1}1' file.txt
    

    关于awk - 如何删除前导和尾随空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9175801/

    相关文章:

    r - 如何在R中创建不同大小的空白向量

    whitespace - 如何转义 bash 别名中的空格?

    R: gsub 标点字符只出现在字符串的末尾

    ruby - gsub 的怪异之处

    awk - 使用awk查找KB中的数字然后更改并替换为GB并显示整行

    awk 用先前的非空列值 : 填充空列值

    python - 删除 Pandas Column 中所有大于 1 的空格

    linux - 如何使用awk查找具有相似文件名的文件以及其中有多少

    awk - 使用 awk 小写某些单词

    r - 在 R 的正则表达式中使用变量值