Это мой сценарий. Он печатает каждую строку в файле с номером строки. Далее я хочу прочитать, какая строка выбрана пользователем и сохранить ее для некоторой переменной.Как получить строку 'variable' из файла?
I=1
for ROW in $(cat file.txt)
do
echo "$I $ROW"
I=`expr $I + 1`
done
read var
awk 'FNR = $var {print}' file.txt
Затем я хочу напечатать/сохранить выбранную строку в файл.
Как это сделать?
, когда i echo $var
это показывает мне номер. Но когда я пытаюсь использовать эту переменную в awk, она печатает каждую строку.
Как читать строку 'var' из файла?
И кроме того, как сохранить эту строку в другой переменной?
Пример file.txt
1 line1
2 line2
3 line3
4 line4
когда я нажмите 3 я хочу прочитать третью строку из файла.
Никогда не делайте этого: 'for x in $ (command)' или \ 'command \' или $ var. for-in используется для итерации аргументов, а не (выходных) строк. Вместо этого используйте glob (например. * .txt), массивы (например, «$ {names [@]}») или while-read цикл (например, при чтении строки -r). См. Http://mywiki.wooledge.org/BashPitfalls#pf1 и http://mywiki.wooledge.org/DontReadLinesWithFor –