невозможно запустить команду awk в качестве сценария оболочки - PullRequest
0 голосов
/ 23 мая 2011

Я пытаюсь создать сценарий оболочки для поиска определенного индекса в многострочном 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"

команда awk, которую я пытаюсь использовать в оболочке, работает абсолютно нормально. Но когда я пытаюсь создать сценарий оболочки из этой команды, он завершается неудачно и не дает никакого вывода. Это читает строку нет. и индекс. а потом вообще никакого выхода. я что-то не так делаю?

Я запускаю файл в оболочке, набрав:

./fetchvalue.sh newfile.csv

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Ваша цитата не будет работать.Попробуйте это:

awk -F, 'NR=="'$line'"{print $'$index'}' "$1"
0 голосов
/ 02 марта 2012

Вместо прохождения кавычек попробуйте следующее:

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

(Индекс - зарезервированное слово в awk, поэтому я дал ему немного другое имя)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...