我想删除两个单词之间的n个空格,我想知道是否可能。我在网上搜索但是找不到任何东西。我只找到了如何删除制表符和空白行。在我发布问题后,3个空格变为一个,请在input.txt中将其视为三个。
“aaaa”和“bbb”之间有 3个空格字符,我只想删除两个空格。
$ cat Input.txt
aaaa bbb ccc ddd
eeee ff ggg hhh
期望的输出:
aaaa bbb ccc ddd
eee ff ggg hhh
答案 0 :(得分: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
答案 1 :(得分:1)
尝试这些行,可能有所帮助:
tr -s ' '
或
sed 's/ \+/ /g' file
或
awk '$1=$1' file
答案 2 :(得分:0)
Fedorqui 的解决方案是最好的方法,但这里是sed
的方法:
% sed 's/ */ /g' file
aaaa bbb ccc ddd
eeee ff ggg hhh