在某些模式之前添加文本时使用带有忽略大小写的sed

MaN*_*aNn 11 unix linux sed

sed -i '/first/i This line to be added' 
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如何在搜索pattern = first时忽略大小写

fed*_*qui 28

您可以使用以下内容:

sed 's/[Ff][Ii][Rr][Ss][Tt]/last/g' file
Run Code Online (Sandbox Code Playgroud)

否则,你有/I和n /i标志:

sed 's/first/last/Ig' file
Run Code Online (Sandbox Code Playgroud)

来自man sed:

一世

一世

正则表达式匹配的I修饰符是GNU扩展,它以不区分大小写的方式使sed匹配regexp.

测试

$ cat file
first
FiRst
FIRST
fir3st
$ sed 's/[Ff][Ii][Rr][Ss][Tt]/last/g' file
last
last
last
fir3st
$ sed 's/first/last/Ig' file
last
last
last
fir3st
Run Code Online (Sandbox Code Playgroud)

  • 如果我没记错的话,“/i /I”适用于 gnu sed,并且仅适用于“s/../../(替换操作)”。例如,不适用于“/.../p” (2认同)

End*_*oro 8

GNU sed

sed '/first/Ii This line to be added' file
Run Code Online (Sandbox Code Playgroud)


ben*_*zer 5

你可以试试

sed 's/first/somethingelse/gI'
Run Code Online (Sandbox Code Playgroud)