目标是从一个文件中提取字符串,然后在另一文件中替换特定的字符串。
几乎完成了,但是需要知道标记的行,或者也许有更多相关的解决方案。 谢谢。
if grep -q "edem_pl" /sdcard/DiseqTree.ini ; then
grep edem_pl /sdcard/DiseqTree.ini > /sdcard/temp.txt
else
echo "no edemtv user"
fi
**********************
after making some actions
**********************
if [ -e "/sdcard/temp.txt" ]; then
**copy string from /sdcard/temp.txt and replace with it string that contains edemtv in /sdcard/DiseqTree.ini**
else
echo "no edemtv user"
fi
答案 0 :(得分:0)
命令:
sed s/edem_pl/edemtv/g
将充当过滤器,以代替(s
替代所有包含g
的行(edem_pl
局部)并通过包含edemtv
的等效行。您可以像这样将其插入命令中:
grep edem_pl /sdcard/DiseqTree.ini | sed s/edem_pl/edemtv/g > /sdcard/temp.txt
和/sdcard/temp.txt
仅包含最初包含edem_pl
的行,并用edemtv
代替。
请记住,edem_pl
和edemtv
在此处被视为正则表达式。在这种情况下,不需要进行特殊的转义,但是如果它们包含正则表达式特殊字符(例如[
和^
,则这些字符将需要使用\
进行转义。)
答案 1 :(得分:0)
最佳解决方案
sed -i "s!.*edemtv.*!$(cat /sdcard/temp.txt)!g" /sdcard/DiseqTree.ini
也
replace=`grep edem_pl /sdcard/temp.txt`
sed -i "s/.*edemtv.*/$replace/g" /sdcard/DiseqTree.ini
一个
busybox sed -i '/.*edemtv.*/{
r /sdcard/temp.txt
d
}' /sdcard/DiseqTree.ini
感谢4pda社区