将命令行参数传递给awk

pho*_*esh 1 bash shell awk

我正在尝试创建一个简单的bash脚本,它使用命令行参数作为awk的参数.

文件格式如下:

id|Name|birthday|joinDate
Run Code Online (Sandbox Code Playgroud)

并且命令行输入:

./my_script -f filename.dat -id 1234
Run Code Online (Sandbox Code Playgroud)

当我使用以下代码行时:

awk -v arg ="$4", -F"|" '{if(arg == $1)print $1,$2}' "$2"
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

'awk: 'arg' argument to '-v' not in 'var=value' form'.
Run Code Online (Sandbox Code Playgroud)

这有什么问题?我想要的只是打印给定ID的特定列.

kar*_*kfa 9

您的答案在错误消息中.将参数放在var=value表格中,=标志周围没有任何空格.