当我直接从shell执行时,我使用的awk脚本工作正常。
然而,当我把它包含在bash脚本中时,它不起作用,我也找不到原因。下面是我的脚本代码部分。
它应该更改名称列表中的特定行。txt与awk脚本一起使用,但当我执行脚本时,它什么都不做。
但就像我在shell中执行awk脚本时说的,它工作正常。
edit_liste()
{
while [ "$choice" != "Q" ];do
if [ "$choice" == "A" ];then
echo "Enter new name."
read new_name
`awk -v new_name="$new_name" -v line="$line" -i inplace 'BEGIN { FS = ":" } {if(NR==$line) {$1=new_name} {print}}' $HOME/name_list.txt`
return 0
这段代码的目的是,用用户输入编辑文本文件中的记录。
名单内容如下:
John Doe:45454545:jdoe@gmail.com
有4张这样的唱片。
我试图用awk脚本做的是:使用
new_name
从用户输入中获取的变量。使用预定义的
line
变量i旨在更改文本文件中的正确行。
我还去掉了没有用的背勾。