我设法使用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或其他? 我正在寻找一个命令行工具,所以没有文字编辑器搜索&替换可以做这个工作。
感谢任何提示!
答案 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 )