我正在尝试使用SED从两个单词中提取文本,例如“帐户”和“已识别”,我希望搜索不区分大小写。所以我尝试使用I参数,但收到此错误消息:
OPTIONS
答案 0 :(得分:0)
使用:
sed -n "/Account/,/Recognized/Ip"
即。将订单更改为:Ip
而不是pI
答案 1 :(得分:0)
/pattern/I
是如何在sed
sed -n "/Account/I,/Recognized/Ip" Security.txt | sed -e '1d' -e '$d'
您可以使用单sed
命令来实现相同的目标:
sed -n '/account/I,/recognized/I{/account/I!{/recognized/I!p}}' Security.txt
或awk
awk 'BEGIN{IGNORECASE=1} /account/{f=1; next} /recognized/{f=0} f' Security.txt
<强>参考:强>
答案 2 :(得分:0)
您有useless use of cat,您应该将文件直接提供给sed
。下面可能是一种方法。
$ cat file.txt
Some stuff Account sllslsljjs Security.
Another stuff account name and ffss security.
$ sed -nE 's/^.*account[[:blank:]]*(.*)[[:blank:]]*security.*$/\1/pI' file.txt
sllslsljjs
name and ffss
[[:blank:]]*
是贪婪的,会删除所需文本前后的空格。 -E
选项允许使用扩展正则表达式。