У меня есть скрипт, который изменяет строки в файлах. Что отлично работает, но, следовательно, файлы будут доступны только для чтения. Я пробовал изменить 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 "%s\n" ',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
Использование 'chmod' для изменения прав доступа к файлам, прежде чем (и после), вы должны редактировать их? –
Любые конкретные причины, по которым вы не используете 'sed'? – tripleee
Вы будете многократно благодарить себя за переключение на тривиально машиночитаемый формат даты YYYYMMDD. – tripleee