我有这个包含序列号的文件(serials.txt):
S/N:175-1915011190
S/N:244-1920023447
S/N:335-1920101144
S/N:244-1920101149
使用grep
或类似工具,我想选择所有不以' 244'开头的序列号。
我可以选择所有的ô' 244'与grep -Eo '244-[0-9]*' serials.txt
但我想要相反
像grep -Eo '(^244)-[0-9]*' serials.txt
输出应该是(没有S / N :)
175-1915011190
335-1920101144
答案 0 :(得分:1)
关注awk
可能对您有帮助。
awk '!/S\/N:244/' Input_file
编辑: 如果您需要从序列号开始直到输出结束,上面的代码将提供完整的输出行,然后以下内容可以帮助您。
awk -F':' '!/S\/N:244/{print $2}' Input_file
EDIT2: 此处也添加sed
解决方案。
sed -n '/:244/d;s/.*://;p' Input_file
答案 1 :(得分:1)
grep上的-v
选项在这里会有所帮助,然后cut
删除主要内容:
grep -v ':244-' serials.txt | cut -c5-
答案 2 :(得分:1)
在这里,没有S / N:
grep -v ':244' serials.txt | cut -d':' -f2
Antigrep:244,带分隔符的剪切:显示字段2。
答案 3 :(得分:0)
awk -F':' '$2!~/^244/{print $2}' file