正则表达式仅打印匹配的字符串,而不是使用awk打印整行

正则表达式仅打印匹配的字符串,而不是使用awk打印整行,awk,Awk,我试图从下面的数据中只匹配ID“549d40r0-1e1b-01v8-0d72-0a8f2c680100”,我使用正则表达式进行模式匹配,但是只需要匹配ID,而不是整行进行模式匹配。你能帮我用AWK吗 以下是正则表达式: ([a-z0-9]-[a-z0-9]-[a-z0-9]-[a-z0-9]-[a-z0-9]*): 感谢和问候,解决方案一:如果您的id(您在帖子中发布的字符串)位于一行,并且您只想查找特定字符串,那么以下内容可能会对您有所帮助 awk -v var="549d40r0-1e1b

我试图从下面的数据中只匹配ID“549d40r0-1e1b-01v8-0d72-0a8f2c680100”,我使用正则表达式进行模式匹配,但是只需要匹配ID,而不是整行进行模式匹配。你能帮我用AWK吗

以下是正则表达式: ([a-z0-9]-[a-z0-9]-[a-z0-9]-[a-z0-9]-[a-z0-9]*):

感谢和问候,

解决方案一:如果您的id(您在帖子中发布的字符串)位于一行,并且您只想查找特定字符串,那么以下内容可能会对您有所帮助

awk -v var="549d40r0-1e1b-01v8-0d72-0a8f2c680100" '{if(match($0,var)){print substr($0,RSTART,RLENTH)}}'  Input_file
awk '{if(match($0,/[0-9a-z]+\-[0-9a-z]+\-[0-9a-z]+\-[0-9a-z]+\-[0-9a-z]+:/)){print substr($0,RSTART,RLENTH)}}'   Input_file

解决方案2:如果您的id(您在帖子中发布的字符串)位于一行,并且您希望将其与正则表达式匹配(仅根据所示示例),则以下内容可能会对您有所帮助

awk -v var="549d40r0-1e1b-01v8-0d72-0a8f2c680100" '{if(match($0,var)){print substr($0,RSTART,RLENTH)}}'  Input_file
awk '{if(match($0,/[0-9a-z]+\-[0-9a-z]+\-[0-9a-z]+\-[0-9a-z]+\-[0-9a-z]+:/)){print substr($0,RSTART,RLENTH)}}'   Input_file


ID值是否占用多行?我尝试的第二个解决方案匹配整行具有给定的ID。第四个输入文件有许多ID文件,如我提到的,应该匹配。@user3834663,如果您只想打印匹配的ID,请检查我编辑的解决方案,然后告诉我如何进行。
awk 'match($0,/[0-9a-z]+\-[0-9a-z]+\-[0-9a-z]+\-[0-9a-z]+\-[0-9a-z]+:/){print substr($0,RSTART,RLENGTH)}'  Input_file