代码之家  ›  专栏  ›  技术社区  ›  Chris

查找包含“^”的行并用“”替换整行

  •  2
  • Chris  · 技术社区  · 14 年前

    我有一个文件,每行都有一个字符串…IE.

    test.434
    test.4343
    test.4343t34
    test^tests.344
    test^34534/test
    

    我想找到任何包含“^”的行,并用空白替换整个行。

    我试着用sed:

    sed -e '/\^/s/*//g' test.file
    

    这似乎不管用,有什么建议吗?

    2 回复  |  直到 14 年前
        1
  •  4
  •   Greg Bacon    14 年前
    sed -e 's/^.*\^.*$//' test.file
    

    例如:

    $ cat test.file
    test.434
    test.4343
    test.4343t34
    test^tests.344
    test^34534/test
    $ sed -e 's/^.*\^.*$//' test.file
    test.434
    test.4343
    test.4343t34
    
    
    $

    要完全删除违规行,请使用

    $ sed -e '/\^/d' test.file
    test.434
    test.4343
    test.4343t34
        2
  •  0
  •   ghostdog74    14 年前

    其他方式

    AWK

    awk '!/\^/' file
    

    猛击

    while read -r line
    do
      case "$line" in
        *"^"* ) continue;;
        *) echo "$line"
      esac
    done <"file"
    

    可能是最快的

    grep -v "\^" file