我需要创建一个脚本,它将在文件(XML)中的特定行之后添加文本。这是我到目前为止:将文本添加到特定的行linux脚本
echo
echo "This script will blah blah blah"
echo
read -p "Press Enter to continue..."
clear
var1=`grep -n "" | awk -F ":" '{print $1}'` //var1 = line number
function EnterID()
{
echo -n "Enter ID: "
read ID
var2="text to be added"
sed "$((var1+1))i$var2" > //add text to file, overwrite file
#var1="$((var1+1))" //increment line number???
echo
echo "ID successfully added to file"
echo
EnterNewID
}
EnterNewID()
{
read -p "Press Enter to continue..."
clear
echo -n "Would you like to add another ID? (y)es or (n)o: "
read answer
clear
if [ $answer = "y" ]; then
EnterID
else
exit
fi
}
EnterID
该脚本第一次工作。但是,如果用户尝试添加附加ID,则第一个ID将被覆盖。我也应该说我不是程序员(更多的是网络人员)。我有一点经验脚本,但仅此而已。
其它信息:
原件:
初次使用后:第二使用
// newly added ID
后:
// newly added ID
想要:
2014-10-27
dej27
+0
嗨,你能提供一个你想覆盖的文件的例子,以及预期的结果吗?这将有所帮助。 –
2014-10-27 16:14:24
+0
当然有一点 –
2014-10-27 16:33:06
+0
我建议你在这里使用一些xml处理工具,而不是sed和awk的combinator。你见过xmlstarlet工具吗? https://stackoverflow.com/questions/5591414 –
2014-10-27 16:59:50