我有一个包含数千行十六进制值的文本文件:
0x20000804
0x20001004
0x20002004
0x20004004
0x20008004 等等...(几千行)
有没有办法执行反转 grep 表达式来排除特定索引/位置中具有特定字符的行?
示例:对于 .txt 文件中的上述数字,我只想保留索引/位置 #6 中没有“8”的行
从...开始:
0x20008034
0x20000804
0x20001004
0x20002004
0x20004004
0x20008004
我应该得到以下输出:
0x20000804
0x20001004
0x20002004
0x20004004
因为这些行在索引/位置 6 中没有字符“8”
答案1
使用 Grep:
grep -vE '^.{6}8' file
使用 Awk,使用空字段分隔符,因此每个字符都是一个字段:
awk -F '' '$7 != "8"' file
答案2
$ grep -v '^0x....8' /path/to/datafile