2017-08-01 17 views
1

私は単純なPHPスクリプトで私のdhcpd.confファイルからいくつかの行を削除する必要があります。だから私はそれを行うにはsedコマンドを使用しようとしている。私は3行1から削除するには、このコマンドを使用するようにしようと試みてきたし、それが動作する端末に :phpスクリプトのsed bashコマンド

sed -i '1,3d' pippo.txt 

問題は、私はラインnumersためのいくつかのPHPの変数を渡すsedを使用する方法を理解することができないということです。誰かがPHPのPLSにそのコマンドの正しいsintaxで私を助けることができる

sed -i '$var1,$var2d' pippo.txt 

: は、私のようなものが必要。おかげさまで

答えて

0

だけで変数を拡張し、中括弧で変数をラップするために二重引用符を使用します。

var1=1 
var2=2 
sed -i "${var1},${var2}d" pippo.txt 

変数を$var2dと定義できます。変数$var2を使用し、その後にdという文字を使用する必要がある場合は、${var2}dのように中括弧を使用する必要があります。しかし、この場合は$var1には必要ありませんが、あいまいさはありませんが、実際には従うことをお勧めします。

+0

回答ありがとうございます。なぜまだ動作しなかったのか理解できません。 $ var1 = 1; $ var2 = 2; $ output = shell_exec( 'sed -i "$ {var1}、$ {var2}" pippo.txt'); –

+0

一番外側の引用符は一重引用符なので、内部のものは展開されません。内部構造を拡張するには、一重引用符と二重引用符を入れ替えます。ところで、あなたの 'sed'コマンドはとにかく間違っています。あなたは何をしようとしているのですか??デモンストレーションするだけで、次の行は1行目と2行目だけを複製します(ただし出力は生成されません)。 '$ var1 = 1; $ var2 = 2; $出力=もしくはshell_exec( "SED -i '$ {VAR1}、$ {var2の} P' pippo.txt");私は何をする必要があるか ' – Anubis

+0

がファイルからいくつかの行を削除することです。例えば、私は2行目から5行目をPHPスクリプトでsedコマンドで削除する必要があります。それは、私は、行を指定する端末からsedコマンドを使用しようとするときに動作しますが、私はスクリプトスクリプトでPHP変数を使ってそれをしようとすると動作しません。行は削除されませんでした。 –

関連する問題