如何删除grep搜索结果的空格?

时间:2017-09-15 14:58:22

标签: regex grep spaces

我设法使用Gnu grep 2.5.4(操作系统是Windows 7)找到了一个模式

grep返回的内容如下:

Word1                         ( 1.22 )
Word2  ( -111.999 )
Word3 ( 123 )

所以在单词的末尾和括号之间('总是有不同数量的空格。 我可以使用grep来消除所有空格或除1之外的所有空格,因此se结果将如下所示:

Word1( 1.22 )
Word2( -111.999 )
Word3( 123 )

或(更好)

Word1 ( 1.22 )
Word2 ( -111.999 )
Word3 ( 123 )

(括号内的空格()可能会也可能不会被删除,这个问题很重要 我是否需要其他工具,如sed或其他? 我正在寻找一个命令行工具,所以没有文字编辑器搜索&替换可以做这个工作。

感谢任何提示!

2 个答案:

答案 0 :(得分:3)

您可以将结果用于管道sed

some_command | sed 's/[[:blank:]]*(/ (/'

Word1 ( 1.22 )
Word2 ( -111.999 )
Word3 ( 123 )

您可以考虑使用grep代替awk而不是

awk '/Word/{sub(/[[:blank:]]*\(/, " (")} 1' file

答案 1 :(得分:1)

将结果简单地传递给tr命令。

your_grep_command | tr -s ' '

tr -s ' ':它会在每行上挤出多个空格。

例如:

$ echo "Word1                         ( 1.22 )" | tr -s ' '
Word1 ( 1.22 )