我有一个文件script.sh
,如下所示:
#!/bin/bash
awk -F@ '{ print $1 } file.csv
这将打印file.csv
的第1列。
我希望能够使用诸如script.sh
之类的参数运行./script.sh 3
,这意味着它将代替打印列3。或者./script.sh 10
,这意味着它将代替打印列。 10。
如何以这种方式向AWK传递命令行参数?
答案 0 :(得分:2)
您可以尝试:
awk -v i=$1 -F@ '{print $i}' file.csv
答案 1 :(得分:1)
请您尝试以下操作。(在脚本中也增加了用法,以防用户未通过它,用户应该收到消息)
cat script.sh
#!/bin/bash
val="$1"
if [[ -n "$val" ]]
then
awk -v value="$val" -F'@' '{print $value}' file.csv
else
echo "Usage: Please pass an argument to print a specific field of line while running script as ./script.sh 1"
fi