我正在尝试提取文件中所有前导的 7 位十六进制字符串,其中包含以下行:
3fce110:: ..\Utilities\c\misc.c(431): YESFREED (120 bytes) Misc
我正在尝试提取文件中所有前导的 7 位十六进制字符串,其中包含以下行:
3fce110:: ..\Utilities\c\misc.c(431): YESFREED (120 bytes) Misc
egrep -o '^[0-9a-f]{7}\b' file.txt
egrep
grep -E
与;相同 它使用扩展的正则表达式。-o
仅打印每行的匹配部分。^
将匹配锚定到行首。[0-9a-f]{7}
匹配七个十六进制字符。如果要匹配大写字母,请在A-F
此处添加或添加-i
标志。\b
检查单词边界;它确保我们不匹配长度超过 7 位的十六进制数字。如果文件中的所有行都遵循给定的格式,那么有几个方法:
$ grep -o '^[^:]*' file
3fce110
$ awk -F: '{print $1}' file
3fce110
$ cut -d: -f1 file
3fce110
$ sed 's/:.*//' file
3fce110