【问题标题】:grep or sed for word containing stringgrep 或 sed 用于包含字符串的单词
【发布时间】:2011-11-09 12:09:13
【问题描述】:

示例文件:

blahblah 123.a.site.com   some-junk
yoyoyoyo 456.a.site.com   more-junk
hihohiho 123.a.site.org   junk-in-the-trunk
lalalala 456.a.site.org   monkey-junk

我想用 grep 找出每行中间的所有域,它们都有一个共同的部分 a.site ?

这里可能需要 sed 或正则表达式,因为简单的 grep 还不够?

【问题讨论】:

    标签: regex sed grep


    【解决方案1】:

    你可以这样做:

    grep -o '[^ ]*a\.site[^ ]*' input
    

    awk '{print $2}' input
    

    sed -e 's/.*\([^ ]*a\.site[^ ]*\).*/\1/g' input
    

    【讨论】:

    • 谢谢,上面的正是我需要的。这也给了我一些资料给谷歌,非常感谢:)
    【解决方案2】:

    试试这个找到那个位置的任何东西

      $ sed -r "s/.* ([0-9]*)\.(.*)\.(.*)/\2/g"
    
     [0-9]* - For match number zero or more time.
     .*     - Match anything zero or more time.
     \.     - Match the exact dot.
     ()     - Which contain the value particular expression in parenthesis, it can be printed using \1,\2..\9. It contain only 1 to 9 buffer space. \0 means it contain all the expressed pattern in the expression.
    

    【讨论】:

    • 如果你能解释一下你的答案会更好,对于像我这样的注册新手来说有点复杂:)
    猜你喜欢
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多