изменение определенного поля в соответствии с именем файла

У меня есть 20 файлов с именем nxt_bas_01.txt, nxt_bas_02.формат txt. .. nxt_bas_20.txt и вообще файлы в строке nr.5 у меня есть тот же текст TITLE / nxt_bas_01теперь мне нужно изменить только в строке nr.5 в соответствии с моим именем файла, я пытался с sed-i безуспешно, пожалуйста, посмотрите на мой простой код и поделиться своими предложениями,

num=01
till=20
while [ "$num" -lt `expr $till + 01 ` ]
do
        sed -i '5s/.*/TITLE / nxt_bas_01/' nxt_bas_$num.txt
        num=`expr $num + 1 `
done

1 ответ

  1. Попробовать это :

    for num in {01..20}; do
       sed -i "5s/.*/TITLE \/ nxt_bas_$num/" nxt_bas_$num.txt
    done
    

    Не проверено, но это должно сделать трюк.

    Обновить :

    Замена строк, начинающихся с TITLE / :

     sed -i "s/^TITLE \/.*/yourtext/" yourfile
    

    или с cпомощью команды sed :

    sed "/^TITLE \// c yourtext" <<< "TITLE /toto"