不区分大小写的搜索与 sed 匹配?

use*_*031 2 bash sed case-insensitive

我正在尝试使用 SED 从两个单词(例如“Account”和“Recognized”)中提取文本,并且我希望搜索不区分大小写。所以我尝试使用 I 参数,但收到此错误消息:

cat Security.txt | sed -n "/Account/,/Recognized/pI" | sed -e '1d' -e '$d' sed: -e expression #1, char 24: extra characters after command

Sun*_*eep 6

避免无用地使用猫

/pattern/I是如何指定不区分大小写的匹配sed

sed -n "/Account/I,/Recognized/Ip" Security.txt | sed -e '1d' -e '$d'
Run Code Online (Sandbox Code Playgroud)

您可以使用单个sed命令来实现相同的目的:

sed -n '/account/I,/recognized/I{/account/I!{/recognized/I!p}}' Security.txt
Run Code Online (Sandbox Code Playgroud)

或者awk

awk 'BEGIN{IGNORECASE=1} /account/{f=1; next} /recognized/{f=0} f' Security.txt
Run Code Online (Sandbox Code Playgroud)

参考: