技术问询:如何筛选首冒号后不含星号(*)的文本行?
筛选首冒号后无星号的文本行
以下是几种高效的命令行实现方法:
方法1:使用grep反向匹配
利用正则匹配首冒号后紧跟星号的行,再反向输出不满足该规则的行:
grep -v '^[^:]*:\*' your_file.txt
正则说明:
^[^:]*:匹配行首到第一个冒号的所有内容([^:]表示非冒号字符):\*:匹配第一个冒号后紧跟的星号-v:反向输出,即只打印不匹配上述规则的行
方法2:使用awk字段判断
通过冒号分割字段,直接判断第二个字段是否为星号,不符合则输出整行:
awk -F: '$2 != "*"' your_file.txt
参数说明:
-F::将冒号设为字段分隔符$2 != "*":判断第二个字段不等于星号时,默认打印整行
内容的提问来源于stack exchange,提问作者Jose
相关产品推荐
相关产品推荐

