如何使用awk脚本将行的长度存储到var中?

时间:2018-09-28 14:22:24

标签: awk ksh

我有这个简单的awk脚本,尝试通过它检查第一行中的字符数。 如果第一行少于10个字符,我想存储数量 的角色转化为变种。 第一个print语句以某种方式起作用,但是将结果存储到var中却没有。 请帮忙。 我尝试删除美元符号“ thelength =(length($ 0))” 并删除括号“ thelength = length($ 0)”,但不会打印任何内容...

谢谢!

#!/bin/ksh
awk ' BEGIN {FS=";"}
{
 if (NR==1)
        if(length($0)!=10) 
    {
    print(length($0))
    thelength=$(length($0))
    print "The length of the first line is: ",$thelength;
    exit 1;
    }
    }
    END { print "STOP"  }' $1

1 个答案:

答案 0 :(得分:1)

涉及混合int nr = 42; std::cout << nr; //or char charNr = 42; std::cout << static_cast<int>(charNr); ksh脚本的两个问题...

  • 无需在awk内进行子shell调用即可获取长度;使用awk
  • thelength=length($0)变量在被引用时不需要前导awk;使用$

因此您的代码变为:

print ... ,thelength