0

我正在尝试删除两个单词之间的 n 个空格,我想知道这是否可能。我在网上搜索但找不到任何东西。我只找到如何删除制表符和空白行。在我发布问题后,3 个空格被更改为 1,请在 input.txt 中将其视为 3。

“aaaa”和“bbb”之间有3个空格字符,我只想删除两个空格。

$ cat Input.txt
aaaa   bbb   ccc ddd
eeee ff   ggg hhh

期望的输出:

aaaa bbb ccc ddd
eee ff ggg hhh
4

3 回答 3

1

tr可以-s选择挤压重复的字符:

$ tr -s ' ' < file
aaaa bbb ccc ddd
eeee ff ggg hhh

-s, --squeeze-repeats

将 SET1 中列出的重复字符的每个输入序列替换为该字符的一次出现

另一个例子:

$ echo "aaa ----- bbbb ------------- ccc" | tr -s '-'
aaa - bbbb - ccc
于 2013-09-26T09:53:54.127 回答
1

试试这些线,它可能会有所帮助:

tr -s ' ' 

或者

sed 's/ \+/ /g' file

或者

awk '$1=$1' file
于 2013-09-26T09:54:56.347 回答
0

Fedorqui的解决方案是最好的方法,但这里是如何使用sed

% sed 's/  */ /g' file
aaaa bbb ccc ddd
eeee ff ggg hhh
于 2013-09-26T09:57:34.013 回答