我需要我的脚本来编辑并强制写入读取

我有一个脚本来改变文件中的行。 哪个工作正常,但从此以后,文件将是只读的。 我试过把wq改成wq! (就像我在VI中那样),但这看起来没有效果。 我也尝试过“zz”,它也什么也没做。

我感谢任何帮助; 谢谢。

debug=false

## *****Put file name in quotes******
declare -a arr=("UF19905217" "UG19905218" )

##Put date in DDMMYYYY format for the date the message was original processed.
DATE="25082015"

## now loop through the above array
for i in "${arr[@]}"
do
    #if "$debug; then
        echo "Fix file named: Inbound_$i.msg"
        MSG="Inbound_$i.msg"
    #fi

    if [ ! -d "$MSG" ]; then
    # Enter what you would like changed here.  You can copy and paste this command for multiple changes

        #DATATYPE
        printf "%sn" ',s/<DataType>EDI</DataType>/<DataType>830</DataType>/g' wq | ed -s  /data1/Inbound/$DATE/$MSG        

        echo "Complete"
    else
            echo "Message not found or errored!"
    fi

done

如果您对包含该文件的目录具有写权限,则可以在重写它们之前删除它们。 如果你有权访问GNU sed,这就是sed -i会做的。

我不熟悉ed ,但我认为以下sed命令可以完成与您的命令相同的操作:

sed -i 's/<DataType>EDI</DataType>/<DataType>830</DataType>/g' /data1/Inbound/$DATE/$MSG 

另外,如果您不是该文件的所有者,则该目录不能设置粘滞位,否则您将无法删除该文件。


将其添加到您的.vimrc中:

" Allow saving of files as sudo when I forgot to start vim using   sudo.
cmap w!! w !sudo tee > /dev/null %

然后使用“:w !!” 然后“:q”而不是“:wq”

有关命令的解释,请参阅此问题

链接地址: http://www.djcxy.com/p/49583.html

上一篇: I need my script to edit and force write read

下一篇: Why can't I save a VI file after entering data?