Shell awk那些值包含空白
我怎样才能grep那些有空间的值呢。我正在努力:Shell awk那些值包含空白,shell,awk,Shell,Awk,我怎样才能grep那些有空间的值呢。我正在努力: awk -F '\t' '$19 ~ /[0-9[:blank:]0-9]/ {print $19}' myfile.txt 0000280000 0000209600 0000181 96 0000179586 0000122393 0000000000 您应该单独指定POSIX字符类,如下所示: awk -F '\t' '$19~/[0-9]+[[:space:]]/{ print $19 }' myfile.txt 您应该单独指定POS
awk -F '\t' '$19 ~ /[0-9[:blank:]0-9]/ {print $19}' myfile.txt
0000280000
0000209600
0000181 96
0000179586
0000122393
0000000000
您应该单独指定POSIX字符类,如下所示:
awk -F '\t' '$19~/[0-9]+[[:space:]]/{ print $19 }' myfile.txt
您应该单独指定POSIX字符类,如下所示:
awk -F '\t' '$19~/[0-9]+[[:space:]]/{ print $19 }' myfile.txt
首先,表达式
[0-9[:blank:]0-9]
与数字0-9
或匹配。(第二个0-9是多余的)。第19列中的所有测试数据都是如此,这就是为什么它们都被打印出来的原因
如果要检查空格(空格或制表符),可以使用:
awk -F'\t' '$19 ~ /[[:blank:]]/{print $19}'
但是,由于字段是由制表符分隔的,因此您可以只使用文本空间:
awk -F'\t' '$19 ~ / /{print $19}'
除此之外,在
awk
中检查字段中的文本空间不需要正则表达式,您可以使用index()
:
index()
如果字段19不包含空格,则返回零,否则返回字符串中第一次出现的位置。由于字符串索引从awk
中的1
开始,因此该位置将始终大于零,其计算结果为true
,并使awk在下面的块中打印该字段。首先,表达式[0-9[:blank:]0-9]
匹配数字0-9
或空白。(第二个0-9是多余的)。第19列中的所有测试数据都是如此,这就是为什么它们都被打印出来的原因
如果要检查空格(空格或制表符),可以使用:
awk -F'\t' '$19 ~ /[[:blank:]]/{print $19}'
但是,由于字段是由制表符分隔的,因此您可以只使用文本空间:
awk -F'\t' '$19 ~ / /{print $19}'
除此之外,在
awk
中检查字段中的文本空间不需要正则表达式,您可以使用index()
:
index()
如果字段19不包含空格,则返回零,否则返回字符串中第一次出现的位置。由于字符串索引从awk
中的1
开始,因此该位置将始终大于零,其计算结果为true
,并使awk在以下块中打印该字段。您可以使用简单的grep语句来完成此操作:
grep''filename.txt
要在特定字段中查找空间,请使用以下命令:
cat file.txt|awk -F '\t' {'print $19'}|grep ' '
您可以使用一个简单的grep语句:
grep''filename.txt
要在特定字段中查找空间,请使用以下命令:
cat file.txt|awk -F '\t' {'print $19'}|grep ' '