我需要我的脚本来编辑并强制写入读取
我有一个脚本来改变文件中的行。 哪个工作正常,但从此以后,文件将是只读的。 我试过把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