Case-insensitive search and replace with sed

前端 未结 8 1877
暗喜
暗喜 2020-11-28 08:51

I\'m trying to use SED to extract text from a log file. I can do a search-and-replace without too much trouble:

sed \'s/foo/bar/\' mylog.txt
<
相关标签:
8条回答
  • 2020-11-28 09:47

    If you are doing pattern matching first, e.g.,

    /pattern/s/xx/yy/g
    

    then you want to put the I after the pattern:

    /pattern/Is/xx/yy/g
    

    Example:

    echo Fred | sed '/fred/Is//willma/g'
    

    returns willma; without the I, it returns the string untouched (Fred).

    0 讨论(0)
  • 2020-11-28 09:49

    Editor's note: This solution doesn't work on macOS (out of the box), because it only applies to GNU sed, whereas macOS comes with BSD sed.

    Capitalize the 'I'.

    sed 's/foo/bar/I' file
    
    0 讨论(0)
提交回复
热议问题