如何使用 awk 脚本将一行的长度存储到 var 中?
How can I store the length of a line into a var withing awk script?
我有这个简单的 awk 脚本,我试图用它来检查第一行中的字符数。
如果第一行少于 10 个字符,我想存储数量
字符到一个变种。
第一个 print 语句以某种方式起作用,但将该结果存储到 var 中却不起作用。
请帮忙。
我尝试删除美元符号“ thelength=(length($0))”
并删除括号“thelength=length($0)” 但它不打印任何内容...
谢谢!
#!/bin/ksh
awk ' BEGIN {FS=";"}
{
if (NR==1)
if(length([=10=])!=10)
{
print(length([=10=]))
thelength=$(length([=10=]))
print "The length of the first line is: ",$thelength;
exit 1;
}
}
END { print "STOP" }'
处理混合 ksh
和 awk
脚本的两个问题...
- 无需在
awk
内进行子shell调用获取长度;使用 thelength=length([=14=])
awk
变量在被引用时不需要前导$
;使用 print ... ,thelength
因此您的代码变为:
#!/bin/ksh
awk ' BEGIN {FS=";"}
{
if (NR==1)
if(length([=10=])!=10)
{
print(length([=10=]))
thelength=length([=10=])
print "The length of the first line is: ",thelength;
exit 1;
}
}
END { print "STOP" }'
我有这个简单的 awk 脚本,我试图用它来检查第一行中的字符数。 如果第一行少于 10 个字符,我想存储数量 字符到一个变种。 第一个 print 语句以某种方式起作用,但将该结果存储到 var 中却不起作用。 请帮忙。 我尝试删除美元符号“ thelength=(length($0))” 并删除括号“thelength=length($0)” 但它不打印任何内容...
谢谢!
#!/bin/ksh
awk ' BEGIN {FS=";"}
{
if (NR==1)
if(length([=10=])!=10)
{
print(length([=10=]))
thelength=$(length([=10=]))
print "The length of the first line is: ",$thelength;
exit 1;
}
}
END { print "STOP" }'
处理混合 ksh
和 awk
脚本的两个问题...
- 无需在
awk
内进行子shell调用获取长度;使用thelength=length([=14=])
awk
变量在被引用时不需要前导$
;使用print ... ,thelength
因此您的代码变为:
#!/bin/ksh
awk ' BEGIN {FS=";"}
{
if (NR==1)
if(length([=10=])!=10)
{
print(length([=10=]))
thelength=length([=10=])
print "The length of the first line is: ",thelength;
exit 1;
}
}
END { print "STOP" }'