sed 删除空格

sed 删除空格

有人知道如何使用 Sed 删除文本文件中的所有空格吗?我一直尝试使用“d”删除命令来执行此操作,但似乎无法弄清楚

答案1

什么样的“空间”?

“删除所有空格”可能有多种含义:

  1. 删除所有出现的空格字符,代码0x20
  2. 删除所有水平空格,包括水平制表符“ \t
  3. 删除所有空格,包括换行符、“ \n”和其他

适合这项工作的合适工具

如果sed由于某些隐藏的原因这不是必需的,那么最好使用合适的工具来完成工作。

该命令tr的主要用途是将字符列表翻译(因此命名为“tr”)为其他字符列表。在特殊情况下,它可以翻译为空字符列表;选项-d( --delete) 将删除列表中出现的字符。

字符列表可以在[:...:]语法中使用字符类。

  1. tr -d ' ' < input.txt > no-spaces.txt
  2. tr -d '[:blank:]' < input.txt > no-spaces.txt
  3. tr -d '[:space:]' < input.txt > no-spaces.txt

当坚持sed

使用 sed 时,[:...:]字符类的语法需要与正则表达式中的字符集语法相结合,[...]从而导致有些令人困惑[[:...:]]

  1. sed 's/ //g' input.txt > no-spaces.txt
  2. sed 's/[[:blank:]]//g' input.txt > no-spaces.txt
  3. sed 's/[[:space:]]//g' input.txt > no-spaces.txt

答案2

您可以使用它来删除所有空格file

 sed -i "s/ //g" file

答案3

也许这样太晚了,但 sed 接受正则表达式作为输入。'\s' 是所有空格的表达式。所以sed s/'\s'//g应该可以完成工作。干杯

相关内容