shell sed命令 修改Info.plist配置
sed命令
sed [-nefri] 'command' 文件路径
具体细节参考 https://blog.csdn.net/lml282518588/article/details/52918765
使用sed修改文件某一行
PUSH_IS_ONLINE=0
echo $PUSH_IS_ONLINE
if [ $PUSH_IS_ONLINE -eq 1 ]; then
PUSH_IS_ONLINE="\<true\/\>"
else
PUSH_IS_ONLINE="\<false\/\>"
fi
echo ${PUSH_IS_ONLINE}
# sed -i '' "$(grep -np PUSH_IS_ONLINE Info.plist | awk -F ':' '{print $1+1}') s%^.*% $PUSH_IS_ONLINE%" Info.plist
# <key>PUSH_IS_ONLINE</key>
# <true/>
# cat Info.plist
grep -np PUSH_IS_ONLINE Info.plist #找出PUSH_IS_ONLINE这一行
grep -np PUSH_IS_ONLINE Info.plist | awk -F ':' '{print $1+1}' #:分割分组,打印第一个变量值加1,得到目标行数
line=$(grep -np PUSH_IS_ONLINE Info.plist | awk -F ':' '{print $1+1}') #$(命令),计算命令执行结果
echo "line=${line}" #用双引号不是单引号,字符串字面量
sed -i '输出文件名字,原文件名添加后缀' "${line}s%^.*% $PUSH_IS_ONLINE%" Info.plist # -i ''后面单引号内,表示会追加到输出文件的文件后面部分
输出结果
0
\<false\/\>
6: <key>PUSH_IS_ONLINE</key>
7
line=7
[Finished in 0.1s]