我有:
/.*213[0-9]\{3\}.*/ {p}
打印所有包含6位数字的行213
但想要更新以打印所有包含6位数字的行213
或214
认为这应该有效:
/.*213[0-9]\{3\}.*|.*214[0-9]\{3\}.*/ {p}
或
/.*213|214[0-9]\{3\}.*/ {p}
但我认为语法或逻辑是错误的。
有人可以帮忙吗?
由于
答案 0 :(得分:4)
试试这个,
/.*21[34][0-9]\{3\}.*/ {p}
扩展命令,
sed -n '/.*21[34][0-9]\{3\}.*/{p}' file
/.*21[34][0-9]\{3\}.*/
。在此,第一个数字必须为2
,第二个数字必须为1
,第三个数字[34]
必须为3或4,后跟任意三位数字。如果条件满足,将打印相应的行。