【问题标题】:How to delete spaces of grep search result?如何删除grep搜索结果的空格?
【发布时间】:2017-09-15 14:58:22
【问题描述】:

我设法使用 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 或其他工具? 我正在寻找一个命令行工具,所以没有文本编辑器搜索和替换可以完成这项工作。

感谢任何提示!

【问题讨论】:

    标签: regex grep spaces


    【解决方案1】:

    您可以使用管道将您的结果发送到sed:

    some_command | sed 's/[[:blank:]]*(/ (/'
    
    Word1 ( 1.22 )
    Word2 ( -111.999 )
    Word3 ( 123 )
    

    您也可以考虑使用awk,而不是grep

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

    【讨论】:

      【解决方案2】:

      只需将您的结果通过管道传递给tr 命令。

      your_grep_command | tr -s ' '
      

      tr -s ' ' :它将在每一行上将多个空格压缩为一个。

      例如:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-06
        • 2013-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多