在这里,我正在检查表中第一列的数据类型。但我想知道AWK中表的所有列数据类型。我尝试过,但只能获得一列数据类型。
例如:
Column_1 整数
Column_2 整数
Column_3 字符
Column_4 符号
BEGIN{
FS=","
}
{
if($1~ "^[0-9][0-9]*$" ) type="int";
else if($1~ "^[a-zA-Z][a-z[A-Z]*$") type="char";
else type="symbol";
print $1" ",type;
}
xx*
BRE 语法为x+
awk 支持的 ERE 语法。我认为你不打算拥有[
在中间[a-z[A-Z]
。你可能想要改变char
to alpha
因为一切都是char
。正则表达式分隔符是/
, not "
.
尝试这个:
BEGIN {
FS=","; OFS=" "
}
{
for ( i=1; i<=NF; i++) {
if ( $i ~ /^[0-9]+$/ ) type="int"
else if ( $i ~ /^[a-zA-Z]+$/ ) type="alpha"
else type="symbol"
print $i, type
}
}
还可以考虑使用 POSIX 字符类,例如[:alpha:]
而不是像这样的硬编码范围a-zA-Z
.
上面的内容未经测试,因为您没有在问题中提供示例输入或预期输出,也没有告诉我们您希望每行输入的多个字段的输出是什么样子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)