我正在尝试删除两个单词之间的 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
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
试试这些线,它可能会有所帮助:
tr -s ' '
或者
sed 's/ \+/ /g' file
或者
awk '$1=$1' file
Fedorqui的解决方案是最好的方法,但这里是如何使用sed
:
% sed 's/ */ /g' file
aaaa bbb ccc ddd
eeee ff ggg hhh