私はXMLファイルでテキストを見つけようとしていて、それを持っている行の一部だけを削除しようとしています。
いくつかのコードを検索した後で、このフォーマットを試してみました:perl -p -i -e "s/$1/$2/g" $3
perl one linerを使ってファイル内の特定のテキストを削除するには?
だから私はこのコードを使用しています:
perl -p -i.bak -e "s/\'../../../specialText/\'//g" "C:/box/fileName.XML";
私は何をしたいことのように内側の単一引用符からすべて削除します: 「を../../../specialText/」しかし、q()や\ 'を使って引用符をエスケープするとうまくいきません。私は、テキスト置換として何も入れないのは、それを正しく削除するだろうと推測していますが、わかりません。
エラーは以下のとおりです(?の前に演算子がありません\)ここで、-eライン1で予想オペレータ、近くに "/ specialText/\"
を見つけ
バックスラッシュ 構文エラーがで - e線1、近くに "/ specialText/\"
- 文字列の終端を見つけることができません """ どこでも-e行で、EOFの前に1
これを達成するためにこの1つのライナーをどのように書き直すのですか?
これは機能します。
C:\box>perl -p -i.bak -e s/Copyright/bar/g Test.txt
私は今、私はちょうど私の元を変更することでプレイしている、別のファイルでそれを試してみました。
私はそのようなファイルやディレクトリを取得していないよ:
しかし、急性leaning toothpick syndromeを避けるために、私はこのように、代替正規表現の区切り文字と
\Q
と\E
escape sequencesを使用して代わりにお勧めします。私はWindows 7のボックスでActivePerlを使用しています。これはセットアップの問題ですか? –コードが機能するため、ファイル名を確認してください。 )この1本のライナーをテストすると、私に起こった、btw;私は.plファイルと.pdfファイルを混同しました。 ) – raina77ow
私はセミコロン ';'コマンドラインを終了したときには必要ではないステートメントを最後に入力します。 –