Awk正则表达式问题的打印结果
我试图从一个文件中打印所有单词,后面跟一个#using awk。下面的代码处理单词后面有空格的单词,但有些单词没有空格,它会打印整行。有没有办法让代码只在没有空格的情况下打印单词 使用的代码:Awk正则表达式问题的打印结果,awk,grep,Awk,Grep,我试图从一个文件中打印所有单词,后面跟一个#using awk。下面的代码处理单词后面有空格的单词,但有些单词没有空格,它会打印整行。有没有办法让代码只在没有空格的情况下打印单词 使用的代码: gawk.exe "{ for(i=1; i<=NF; i++) if($i ~ /#[A-Z]*/) {print $i}}" "file.csv" 我的结果: #Realtree #HuntWithAnEdge #RealtreeEDGE #DeerHu
gawk.exe "{ for(i=1; i<=NF; i++) if($i ~ /#[A-Z]*/) {print $i}}" "file.csv"
我的结果:
#Realtree
#HuntWithAnEdge
#RealtreeEDGE
#DeerHunting",https://www.facebook.com/Realtree/photos/a.103244392286/10158628671852287/?
在最后一个结果中,我所需要的是尽可能使用您的awk来取消计时:
gawk "{for(i=1; i<=NF; i++) if (match($i, /#[a-zA-Z]+/, a)) {print a[0]}}" file
或
输出:
需要^expr$来匹配整个字段,而不仅仅是查找与…匹配的子字段。。。。 例如,它匹配以散列(#)开头的任何字段 如果($i~/#[A-Z]*/) 它匹配以哈希开头的任何字段,后跟任意数量的a-Z,包括零个字符,但不包括其他字符 如果($i~/^[A-Z]*$/) 这匹配以哈希开头的任何字段,后跟1个或多个a-Z,但不匹配其他字符 如果($i~/^[A-Z]*$/)
为您编辑,请查看代码块
gawk "{for(i=1; i<=NF; i++) if (match($i, /#[a-zA-Z]+/, a)) {print a[0]}}" file
grep -o "#[a-zA-Z]\+" file
grep -oP "#\w+" file # please, tell me if windows have -P switch
#Realtree
#HuntWithAnEDGE
#RealtreeEDGE
#DeerHunting