Linux 如何使Awk在shell脚本中使用Bash数组变量? user=(`cat
这就是我使用用户数组元素作为awk说明符的编码方式。如何插入${user[$I]}进入AWK命令。正如我在a中所指出的,您的AWK脚本包含在单引号中;您的shell变量将不会在单引号中展开。总的来说,这很好;Linux 如何使Awk在shell脚本中使用Bash数组变量? user=(`cat,linux,shell,ubuntu,awk,Linux,Shell,Ubuntu,Awk,这就是我使用用户数组元素作为awk说明符的编码方式。如何插入${user[$I]}进入AWK命令。正如我在a中所指出的,您的AWK脚本包含在单引号中;您的shell变量将不会在单引号中展开。总的来说,这很好;$NF不是您的shell变量之一 您可能需要使用以下主题的变体: user=(`cat < usernameSorted.txt`) for (( i=0; i<${#user[@]}; i++ )) do `awk '$1 == "${user[$i]}&qu
$NF
不是您的shell变量之一
您可能需要使用以下主题的变体:
user=(`cat < usernameSorted.txt`)
for (( i=0; i<${#user[@]}; i++ ))
do
`awk '$1 == "${user[$i]}"{print $NF}' process.txt > CMD$i.txt`
done
其中,您将user
称为命令行上的“${user[$i]}”
中设置的Awk变量
脚本中还有其他一些奇怪之处。
什么是“有效”和“限制范围”意思是?你想做什么?除非你能澄清你的问题以及你期望发生什么和没有发生什么,否则你的问题将被关闭。请回顾欢迎访问SO!请阅读。你正在询问如何插入${user[$i]}
输入到AWK命令中,对吗?请澄清。对于调试帮助,包括示例输入、所需输出和实际输出(如错误)确实很有帮助。您的awk
脚本包含在单引号中;shell变量不会在单引号中展开。您可能需要在awk-v user=“${user[$i]}”…program…'process.txt>“CMD$i.txt”
主题上使用变体,其中您将user
作为中的awk变量集引用${user[$i]}“
在命令行上。一般来说,要对shell变量使用awk(或sed、grep或任何其他过滤器),您需要通过过滤器回送变量。因此,您的awk行看起来更像>>回送${user[i]}awk'xxxxxxxx')(其中xxxxxxxx是您的awk命令)
awk -v user="${user[$i]}" '$1 == user { print $NF }' process.txt > "CMD$i.txt"
i=0
for user in $(cat usernameSorted.txt)
do
awk -v user="$user" '$1 == user { print $NF }' process.txt > "CMD$i.txt"
((i++))
done