将awk输出存储在变量中

tec*_*the 2 linux bash shell awk

我忽略了这段代码是什么问题?

#! /bin/bash
File1=$1
for (( j=1; j<=3; j++ ))
{
    output=$(`awk -F; 'NR=='$j'{print $3}' "${File1}"`)
    echo ${output}
}
Run Code Online (Sandbox Code Playgroud)

File1看起来像这样:

Char1;2;3;89
char2;9;6;66
char5;3;77;8
Run Code Online (Sandbox Code Playgroud)

我想在循环的每一行中提取字段3

所以结果将是

3
6
7
Run Code Online (Sandbox Code Playgroud)

小智 5

应该是这样的:

#! /bin/bash
File1=$1
for (( j=1; j<=3; j++ ))
{
                output=$(awk -F ';' 'NR=='$j' {print $3}' "${File1}")
                echo ${output}
}
Run Code Online (Sandbox Code Playgroud)

它在我的CentOS上运行良好。