regex - 我可以在 SED 地址中乘以模式匹配来打印吗

标签 regex sed

我有:

/.*213[0-9]\{3\}.*/ {p}

打印以 213 开头的 6 位数字的所有行

但希望更新为打印以 213214 开头的 6 位数字的所有行

认为这应该有效:

/.*213[0-9]\{3\}.*|.*214[0-9]\{3\}.*/ {p}

/.*213|214[0-9]\{3\}.*/ {p}

但我认为语法或逻辑是错误的。

有人可以帮忙吗?

谢谢

最佳答案

试试这个,

/.*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后跟任何三位数。如果满足条件,就会打印相应的行。

关于regex - 我可以在 SED 地址中乘以模式匹配来打印吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24139747/

相关文章:

regex - 用于使用掩码验证 IP 的 HTML5 模式

regex - Vim 替换 : Delete All between specified words

javascript - 使用 RegExp 了解一些 JavaScript

regex - 使用 sed linux 在具有特定字符串的行中输出一个数字

variables - sed 在读取行时替换变量

regex - 脚本 : regex works in :s but not in substitute()

python - 某些字符的正则表达式冲突 (ISO-8859-1 Windows-1252)

linux - 如何测试文件中的某些字符

shell - 在不包含字符串的文件中查找行并在其开头添加文本

regex - Sed:为什么 [^\]] 似乎不起作用?