我有20个文件名为nxt_bas_01.txt,nxt_bas_02.txt。。。nxt_bas_20.txt和第5行的所有文件我都有相同的文本TITLE / nxt_bas_01现在我只需要在第5行根据我的文件名进行更改,我尝试了使用sed-我失败了,请查看我的简单代码并分享您的建议,

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

最佳答案

试试这个:

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

或者使用sedc命令:
sed "/^TITLE \// c yourtext" <<< "TITLE /toto"

关于linux - 根据文件名更改特定字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37466585/

10-14 17:10
查看更多