1

HTML テンプレートを使用して、いくつかのプレースホルダーをカスタム文字列に置き換えようとしています。

私は github でテンプレートのカールを行っていstr=$(curl https://raw.github.com/toneworm/template-html5-sass/master/index.html)ます: 以下を変数に保存します:-

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="description" content="[name]">
<meta name="author" content="">
<title>[name]</title>
<link type="text/css" rel="stylesheet" href="css/styles.css" />
<!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<!-- scripts -->
<script type="text/javascript" src="js/main.js"></script>
</body>
</html>

[name]他の何か (この例では TEST) でグローバルな置換を行いたい...

現在sed -i 's/\[name\]/TEST/g' $first > index.html、次のエラーをスローするものがあります:-

sed: 1: "<!DOCTYPE": invalid command code <

何か案は?

4

4 に答える 4

1

複数の検索置換については、このリンクをチェックし てください

コンテンツにバックスラッシュを必要としないことで簡素化される Perl を使用することもできます。

#RAND=$$;
in1="$1"
out1="$2";
#cp $3 /tmp/$3.$RAND
in=$in1 out=$out1 perl -pi -e 's/\Q$ENV{"in"}/$ENV{"out"}/g' $3 

1 つのファイルを使用する別の方法を次に示します。

url=https://raw.github.com/toneworm/template-html5-sass/master/index.html; curl $url |sed "s:\[name\]:TEST:g" > index1.html
于 2013-09-30T21:27:43.823 に答える
0

curlコマンドの出力を文字列変数に保存するのはなぜですか? ファイルを別の名前で保存し、そのファイルをsed.

curl https://raw.github.com/toneworm/template-html5-sass/master/index.html test.html
sed "s|\[name\]|TEST|g" test.html > index.html
于 2013-09-30T21:19:02.547 に答える