我試圖用屬性文件中的值替換html文件中的[[****]]佔位符。輸入文件用SED替換佔位符
示例內容:在財產文件
<html>
<host>[[my_host]]</host>
<port>[[my_port]]</port>
</html>
示例內容:
my_host=linkcmb.com
my_port=8080
我當前的腳本:
#/bin/sh
property_file=$1
input_html=$2
output_html=$3
IFS="="
while read k v || [[ -n "$k" ]]; do
test -z "$k" && continue
declare $k=$v
done <"$property_file"
eval "$(sed 's/\[\[\([^]]\+\)\]\]/${\1}/g' $input_html) >$output_html";
錯誤:HTML標籤越來越評估過造成錯誤。
./some.sh: line 32: html: No such file or directory
./some.sh: line 33: host: No such file or directory
./some.sh: line 35: /host: No such file or directory
....
....
任何建議將不勝感激。謝謝。
附加樣品輸入線和輸出預計爲清楚......和sed是不是對HTML文件中使用適當的工具... – Sundeep
@Sundeep更新的問題,請檢查 – popcoder
imo,這不適用於bash腳本和sed ...我沒有使用正確的html解析器的經驗......對於給定的示例,'sed -f <(sed's/^ \([^ =] * \)= \(。* \)/ s | \\ [\\ [\\ [\ 1 \\] \\] | \ 2 | /'property.txt)ip.html'可以工作,但它很容易打破真實使用案例 – Sundeep