1

重複の可能性:
Bash コマンドからのテキスト ファイル内の検索と置換

Web サイトのすべてのタイトル タグを変更するように言われました。

タイトル タグは Web サイトのすべてのページ (30 以上) にあり、静的であるため、このタイトルを新しいものに置き換えるには、ファイルごとに移動する必要があります。

そのため、手動で1つずつ実行する必要なく、これを実現できるスクリプトを誰かが知っているかどうか疑問に思っていました.

例:

/var/www/websitename/

このパス内には、タイトルを変更する必要がある複数の .html ファイルがあります。

 <title>Old title</title>

に:

 <title>New title</title>
4

4 に答える 4

3

これを試してください(ここsedではインプレースで動作するため、フォルダーのバックアップ後)。

find /var/www/websitename/ -name '*.html' -exec sed -i.bak 's/.title.Old title..title./<title>New title<\/title>/g' {} \;
于 2012-09-05T09:16:37.933 に答える
2
perl -pi -e 's/\<title\>Old title\<\/title\>/\<title\>New title\<\/title\>/g' *.html
于 2012-09-05T09:14:50.247 に答える
0

これを試して:

#!/bin/bash

old_title="<title>Old title<\/title>"
new_title="<title>New title<\/title>"

for file in $(find . -name "*.html");
do
    `sed -i "s/${old_title}/${new_title}/g" ${file}`
done
于 2012-09-05T12:34:45.347 に答える
0

notepad ++も使用できます。すべてのファイルを開き(それらをマークしてメモ帳++にドラッグするか、フォルダー全体をドラッグするだけです)、ctrl + fを押して、2番目のタブに切り替えます(「置換」またはこのようなもの-私は英語版を使用していません)、テキストを入力します(あなた正規表現も使用できます-オプションを参照)、「開いているすべてのファイルで置換」(またはこのようなもの)をクリックします。スクリプトを使用するほど強力なソリューションではありませんが、より簡単で、多くの場合、それで十分です。

于 2012-09-05T11:36:59.633 に答える