user9371654 Asked: 2019-05-15 16:49:39 +0800 CST2019-05-15 16:49:39 +0800 CST 2019-05-15 16:49:39 +0800 CST 如何找到多个空格并替换为一个空格? 772 我想找到重复的空格(多个)并用一个空格替换它们。我试过了: sed -e 's/ []+/ /g' myfile.txt > myfile2.txt 这导致了一个空文件。为什么?以及如何实现我的目标? files sed 2 个回答 Voted Best Answer SHawarden 2019-05-15T17:13:20+08:002019-05-15T17:13:20+08:00 您的命令出错:sed: -e expression #1, char 10: unterminated 's' command可能是因为没有生成标准输出。 尝试sed -e 's/ \+/ /g' myfile.txt > myfile2.txt 另外:https ://stackoverflow.com/questions/22939323/sed-command-to-replace-multiple-spaces-into-single-spaces Stéphane Chazelas 2019-05-15T21:10:35+08:002019-05-15T21:10:35+08:00 在标准sed中,要搜索一个或多个 SPC 字符,语法为: sed 's/ \{1,\}/ /g' 或者 sed 's/ */ /g' (这是星号前的两个空格)。或者让它更清晰: sed 's/[ ][ ]*/ /g' 一旦-E(对于扩展的正则表达式)被添加到标准中(应该在下一个主要的 POSIX 版本中发生,许多实现已经支持它),你还可以这样做: sed -E 's/ +/ /g' 一些sed实现还可以\+将基本正则表达式(不带-E)理解为\{1,\}. 但是在这里,您可以tr改用: tr -s ' ' < file.in > file.out 挤压空间。
您的命令出错:
sed: -e expression #1, char 10: unterminated 's' command
可能是因为没有生成标准输出。尝试
sed -e 's/ \+/ /g' myfile.txt > myfile2.txt
另外:https ://stackoverflow.com/questions/22939323/sed-command-to-replace-multiple-spaces-into-single-spaces
在标准
sed
中,要搜索一个或多个 SPC 字符,语法为:或者
(这是星号前的两个空格)。或者让它更清晰:
一旦
-E
(对于扩展的正则表达式)被添加到标准中(应该在下一个主要的 POSIX 版本中发生,许多实现已经支持它),你还可以这样做:一些
sed
实现还可以\+
将基本正则表达式(不带-E
)理解为\{1,\}
.但是在这里,您可以
tr
改用:挤压空间。