この質問に何度も回答しましたが、私のプロジェクトでこの質問を使用する方法がわかりません。
複数のPHPファイルがあり、11行と12行の間に新しい文字列を追加したいと思います。追加したい文字列です。
exec('/var/www/scripte/autostandby.sh > /dev/null 2>/dev/null &');
私はこれが行く方法だと思います(単一ファイルの場合は複数のファイルの場合はファイルの代わりに* .phpを使用します)。
sed '12i\
exec('/var/www/scripte/autostandby.sh > /dev/null 2>/dev/null &');
' file.php
私が得るもの:
[1] 29234
bash: $');\n': command not found
だから私はbashがexecコマンドや他のものを実行すると思います。
スペースに似た内容を含む「長い」文字列をどのように追加しますか? '命令が台無しになると思いますか?
PS:「」または「」を追加してもポニーをだますことはできません。
ボーナス:
また、11行目に何かを「追加」する必要があります。
exec('/var/www/streams/taketv.sh');
これに関して
exec('/var/www/streams/taketv.sh > /dev/null 2>/dev/null &');
可能であれば、すべての.phpファイルに適用してください。いつも11番目に減らします。変更される唯一のことは、「taketv.sh」から「abc.sh」またはそれに似たものです。
この組み合わせに"'); "が初めて登場したので、次のように試してみました(テストで1つのファイルのみ)。
sed -i "s/');/ > /dev/null 2>/dev/null &');" TakeTV.php
私はmikeservが言ったものを使うべきだと思います。試してみましたが成功しませんでした。
sed -i 's\
'\'');/'\''/'\'' > /dev/null 2>/dev/null &');'\''
私の計画は、「古い単語」と「新しい単語」を閉じる引用符で設定することでしたが、正しく適用されていないようです!
ベストアンサー1
複数のタイプの引用符を使用するか、エスケープする必要があります。
sed -i "12iexec('/var/www/scripte/autostandby.sh > /dev/null 2>/dev/null &');" *.php
ボーナス:
sed -i "s|exec('/var/www/streams/taketv.sh');|exec('/var/www/streams/taketv.sh > /dev/null 2>/dev/null \&');|"