【发布时间】:2016-07-12 02:20:03
【问题描述】:
我有一个脚本可以更改文件中的行。工作正常,但从那时起,文件将是只读的。我已经尝试将 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的任何特殊原因? -
您会一再感谢自己改用机器可读的可排序日期格式 YYYYMMDD。
-
@tripleee 我不使用 sed 的唯一原因是因为我不知道如何......这看起来是我的最佳选择吗?
-
@FrankCapone 使用另一个编辑器不会改变任何东西,如果我没记错的话,它是底层操作系统和/或文件系统拒绝你写访问权限。