![この狂気をどのように変えることができますか? [閉鎖]](https://linux33.com/image/96425/%E3%81%93%E3%81%AE%E7%8B%82%E6%B0%97%E3%82%92%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E5%A4%89%E3%81%88%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
インスタンスを置き換える方法
id="ogwb"
そして
id="ogwb" name="ogwb" value="<?php echo htmlspecialchars($_POST['ogwb']); ?>"
使用するのかsed
、交換するのか?
答え1
正しいコマンド:
sed -E 's/^id="([^"]+)"$/& name="\1" value="<?php echo htmlspecialchars($_POST['"'\1'"']); ?>"/'
埋め込み単一引用符が必要な場合は、二重引用符から一重引用符に切り替えます。 Bashでは、一重引用符の中に一重引用符を含めることはできません。期間。
しかし、引用符は文字列ではないので重要ではありません。ターミネーターBashでは、異なる引用スタイル間の区切り記号だけです。だから:
some-command 'This is in a single quoted string'"'"'This is another quoted string, but is part of the same argument to some-command'
^^^
This single quote is inside of double quotes.
sed
シェル参照がシェル参照とどのように対話するかを心配しない場合は、sed
コマンドをファイルに貼り付けてを使用して呼び出しますsed -f
。
答え2
echo 'id="ogwb"' | sed 's,id=\(.*\),id=\1 name=\1 value="<?php echo htmlspecialchars($_POST[\1]); ?>",'