如何grep 7位十六进制字符串并仅返回该十六进制字符串?

时间:2013-04-03 13:41:46

标签: grep

我正在尝试提取文件中所有前导的7位十六进制字符串,其中包含以下行:

3fce110:: ..\Utilities\c\misc.c(431): YESFREED (120 bytes) Misc

2 个答案:

答案 0 :(得分:13)

egrep -o '^[0-9a-f]{7}\b' file.txt
  • egrepgrep -E相同;它使用扩展的正则表达式。
  • -o仅打印每行的匹配部分。
  • ^将匹配锚定到该行的开头。
  • [0-9a-f]{7}匹配七个十六进制字符。如果您想匹配大写字母,请在此处添加A-F或添加-i标记。
  • \b检查字边界;它确保我们不会匹配长度超过7位的十六进制数。

答案 1 :(得分:4)

如果文件中的所有行都遵循给定的格式,那么有几种方法:

$ grep -o '^[^:]*' file
3fce110

$ awk -F: '{print $1}' file
3fce110

$ cut -d: -f1 file
3fce110

$ sed  's/:.*//' file
3fce110