2013-05-06 166 views
1

我想用文件中的字符串替换字符串。 假设我有这个字符串,我想用temp.out文件中的字符串替换<start></start>中的字符串。我想这样做,因为我想要替换的字符串非常长,所以我想将字符串保存在一个文件中,并使用sed从文件中加载字符串。如何用文件中的字符串替换字符串中的字符串

<start><value1></value1><value2></value2></start> 

temp.out // suppose temp.out has a very very very long string 
<value1></value1><value2></value2><value1></value1><value2></value2><value1></value1><value2></value2><value1></value1><value2></value2><value1></value1><value2></value2><value1></value1><value2>... </value1><value2></value2><value1></value1><value2></value2><value1></value1><value2></value2> 
+1

所以你要temp.out的''内容是什么? '替换'的意义是什么?为什么你不能只用'temp.out'的内容来追加''和'',例如'echo“ \''cat temp.out \'”' – Bill 2013-05-06 23:22:14

回答

0
string=`cat temp.out` 
string=${string/|/\\|/} # Change any | in $string to \| 
sed "s|<start>.*</start>|<start>$string</start>|" oldfile > newfile 
+0

为什么你不能按照我在上面评论中提出的方式来做?这是更简单的...如果没有'替换' – Bill 2013-05-06 23:31:02

+0

重要我假设,因为这不是原始文件中唯一的东西。 – Barmar 2013-05-06 23:31:23

+0

你能解释一下第二行的内容吗? – codereviewanskquestions 2013-05-07 00:21:12