2011-05-23 105 views
0

我正嘗試創建一個shell腳本來搜索多行csv文件中的特定索引。 我試圖代碼:無法運行awk命令作爲shell腳本

#!/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" 

awk命令我嘗試在外殼使用作品精絕。但是當我試圖用這個命令創建一個shell腳本時,它會失敗並且不會輸出。它讀取行號。和索引。然後根本沒有輸出。 有什麼我做錯了嗎?

我鍵入如下命令運行在shell文件:

./fetchvalue.sh newfile.csv 

回答

1

你的報價是行不通的。試試這個:

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

謝謝。它現在有效。 :) – amit 2011-05-23 06:00:26

0

而不是通過引用地獄去,試試這個:

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

(指數是在awk中的保留字,所以我給它一個稍微differet名)