我需要帮助正则表达式到grep,一个整数。
假设我在文本文件中有这些行。
dm-7 14f504e46494c455267494e5a4e642d516a31562d644f394c
dm-70 14f504e46494c455267494e5a4e642d516a31562d644f395c
dm-71 14f504e46494c455267494e5a4e642d516a31562d644f394d
dm-72 14f504e46494c455267494e5a4e642d516a31562d644f394e我想grep "dm-7“只打印dm-70,dm-71,dm-72连同UUID。我怎样才能做到这一点?
grep "^dm-7$"不会归还任何东西。
谢谢。
发布于 2014-09-08 14:29:02
使用-w匹配准确的单词:
$ grep -w 'dm-7' file
dm-7 14f504e46494c455267494e5a4e642d516a31562d644f394c如果希望确保grep -w '^dm-7' file以单词dm-7开头(^),也可以使用dm-7。
来自man grep
-w --词-regexp 只选择那些包含构成整个单词的匹配的行。测试是,匹配的子字符串必须位于行的开头,或者前面必须有一个非单词组成字符。类似地,它必须在行尾或后面跟着一个非单词组成字符。单词组成字符是字母、数字和下划线.
也可以使用awk:
$ awk '$1=="dm-7"' file
dm-7 14f504e46494c455267494e5a4e642d516a31562d644f394c或者即使是sed
$ sed -n '/^dm-7\s/p' file
dm-7 14f504e46494c455267494e5a4e642d516a31562d644f394c发布于 2014-09-08 14:29:15
尝试:
grep '^dm-7 '
^---note this space当您使用$时,它是“行尾”的regexish,这意味着您将查找任何dm-7,其中它是行中唯一的东西。
发布于 2014-09-08 14:29:45
只需在数字7后面使用单词边界\b。
grep -P "^dm-7\b" filehttps://stackoverflow.com/questions/25726581
复制相似问题