linux中awk外部变量的访问 file=input.txt br=0 awk-v'开始{FS=“;”} { 对于(i=1;i
您混淆了shell脚本和awk,它们是不同的程序/解释器 在linux中awk外部变量的访问 file=input.txt br=0 awk-v'开始{FS=“;”} { 对于(i=1;i,linux,shell,awk,ksh,Linux,Shell,Awk,Ksh,您混淆了shell脚本和awk,它们是不同的程序/解释器 在awk中发生的事情将保留在awk中 最好是将字符串打印到shell中 我注意到我不需要-v标记,而是用-F标记代替设置FS 在您的情况下,您可以在awk中使用END指令,它只在末尾运行 file= input.txt br=0 awk -v 'BEGIN{FS=";"} { for(i=1;i<=NF;i++) { print $i br = NF } }'<$file print "value of br " $br f
awk
中发生的事情将保留在awk
中
最好是将字符串打印到shell中
我注意到我不需要-v
标记,而是用-F
标记代替设置FS
在您的情况下,您可以在awk中使用END指令,它只在末尾运行
file= input.txt
br=0
awk -v 'BEGIN{FS=";"}
{
for(i=1;i<=NF;i++)
{
print $i
br = NF
}
}'<$file
print "value of br " $br
file=input.txt
br=0
目瞪口呆-F;'
{
对于(i=1;i)我想在我的脚本中进一步使用这个br变量吗?请注意你的要求。你想要NF,字段的数量,还是NR,记录(行)的数量?在你的问题中,这些都是混乱的。标题是NR,但代码是NF。谢谢!它的NF,请参见编辑。是否wc-w${file}
显示有用的内容?
file= input.txt
br=0
gawk -F; '
{
for(i=1;i<=NF;i++)
{
print $i
br = NF
}
}
END { print "final value of br:"br } '<$file
file= input.txt
br=$( gawk -F; '
{
for(i=1;i<=NF;i++)
{
br = NF
}
}
END { print br } '<$file
)