Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux中awk外部变量的访问 file=input.txt br=0 awk-v'开始{FS=“;”} { 对于(i=1;i_Linux_Shell_Awk_Ksh - Fatal编程技术网

linux中awk外部变量的访问 file=input.txt br=0 awk-v'开始{FS=“;”} { 对于(i=1;i

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

您混淆了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
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 
)