无法将awk命令作为shell脚本运行

时间:2011-05-23 05:49:54

标签: unix awk

我正在尝试创建一个shell脚本来搜索多行csv文件中的特定索引。 我正在尝试的代码是:

#!/bin/sh

echo "please enter the line no. to search: "
read line

echo "please enter the index to search at: "
read index

awk -F, 'NR=="$line"{print "$index"}' "$1"

我尝试在shell上使用的awk命令工作得非常好。但是当我尝试使用此命令创建shell脚本时,它会失败并且不会输出。它读的是行号。和索引。然后根本没有输出。 有什么我做错了吗?

我通过输入以下命令在shell运行该文件:

./fetchvalue.sh newfile.csv

2 个答案:

答案 0 :(得分:1)

你的报价不起作用。试试这个:

awk -F, 'NR=="'$line'"{print $'$index'}' "$1"

答案 1 :(得分:0)

而不是通过引用地狱,试试这个:

awk -F, -v line=$line -v myindex=$index 'NR==line {print $myindex}' "$1"

(索引是awk中的保留字,所以我给它一个稍微不同的名字)

相关问题