
以下のタグを新しいコンテンツとタグの行に置き換えようとしています。 sedまたは他のオプションを使用してラベルとその値を変更する方法はありますか?
元のHTMLタグ(内部th>
タグ):
th> file-109 /th>
th> file-209 /th>
このHTMLタグを次に変更します。
th>S.No Name /th>
th>S.No Name /th>
以下の方法を試してみましたが、うまくいきません。投げエラーです。
sed "s/th>file-1.*/'th>`head -5 file-109 | tail -1`/th>'/g" Diff.html
sed "s/th>file-2.*/'th>`head -5 file-209 | tail -1`/th>'/g" Diff.html
答え1
sedは/を選択した区切り文字としてさまざまな文字を使用できますが、/は置き換えたい文字列にも表示されます。したがって、私は次を選択します。
sed 's:th>file-[0-9]+ /th>:th>S.No name /th>:g' yourfile
ただし、これより複雑なものを処理するには、正規表現を使用せずにHTMLを解析する必要があります。
答え2
どれほど強力なのかはわかりませんが、次のように
sed -e "s/file-[^/ ]*/S.No Name/g" Diff.html
ファイルを直接編集してみてください。sed -ie
答え3
perl -0777pe '
s{ (?<=th>\s) file-\d+ (?=\s/th>) }{
qx/sed -e "4q;d" "$&"/ =~ /.*/;
$&;
}xge;
' Diff.html
私が正しく理解したら、ファイルのth>タグと/th>タグに含まれるすべてのファイル名をFile-num
選択したファイルの4行目に変更したいと思います。