“Grep”仅保留在特定位置/索引处没有特定字符的行?

“Grep”仅保留在特定位置/索引处没有特定字符的行?

我有一个包含数千行十六进制值的文本文件:

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

相关内容