sed 删除空格

Jus*_*tin 46 sed

有谁知道如何使用 Sed 删除文本文件中的所有空格?我一直在尝试使用“d”删除命令来这样做,但似乎无法弄清楚

Vol*_*gel 55

什么样的“空间”?

“删除所有空格”可能意味着不同的事情之一:

  1. 删除所有出现的空格字符 code 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


Cyr*_*rus 9

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

 sed -i "s/ //g" file
Run Code Online (Sandbox Code Playgroud)

  • 没有骰子。我也尝试过类似的方法。不起作用 (3认同)
  • 一个简单的测试:`man sed | sed "s/ //g"` (2认同)