Unix 从一行中删除n个空格
我试图删除两个单词之间的n个空格,我想知道这是否可能。我在网上搜索了一下,但是没有找到任何关于这个的东西。我只知道如何删除制表符和空行。在我提出问题后,3个空间得到一个变量,请把它看作是输入的三。 “aaaa”和“bbb”之间有3个空格字符,我只想删除两个空格。Unix 从一行中删除n个空格,unix,sed,awk,grep,tr,Unix,Sed,Awk,Grep,Tr,我试图删除两个单词之间的n个空格,我想知道这是否可能。我在网上搜索了一下,但是没有找到任何关于这个的东西。我只知道如何删除制表符和空行。在我提出问题后,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 -
$ 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
尝试以下几行,可能会有所帮助:
tr -s ' '
或
或
的解决方案是最好的方法,但以下是如何使用sed
:
% sed 's/ */ /g' file
aaaa bbb ccc ddd
eeee ff ggg hhh
awk'$1=$1'
这很危险,如果第一个字段是0
或0.0
,它将失败。最好使用awk'{$1=$1}1'
sed 's/ \+/ /g' file
awk '$1=$1' file
% sed 's/ */ /g' file
aaaa bbb ccc ddd
eeee ff ggg hhh