我试图提示用户提供两条信息:
1) 要更改的文件中的行号 2) 将其更改为的值。
到目前为止我的脚本:
echo "Do you wish to enter a variable to be changed?"
select yn in "Yes" "No"; do
case $yn in
Yes)
echo "Please enter a variable to be changed"
read lineNum
echo "Please enter variable's new value"
read val
awk -v lineNum="$lineNum" -v val="$val" \
'BEGIN { if (NR == lineNum) print val; else print $0}' \
test.in > newtest.in
;;
No)
break;;
esac
done
test.in 在一列中都有数值:
1
2
3
4
5
6
7
谢谢。
编辑 忘记提及错误:D。出于某种原因,创建了一个新文件,但仅使用指定的新 val,我想这可能与使用 $0 有关,但我无法弄清楚如何修复它。