Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Awk正则表达式问题的打印结果_Awk_Grep - Fatal编程技术网

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

我试图从一个文件中打印所有单词,后面跟一个#using awk。下面的代码处理单词后面有空格的单词,但有些单词没有空格,它会打印整行。有没有办法让代码只在没有空格的情况下打印单词

使用的代码:

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