ファイル内で、xyz.txtと言っています。任意の数字のパターンとそれに続くドットの例を置き換えたい:1.、2.、10.、11。空白で。 上記を行うためにファイルに作用するコマンドラインでperlコマンドを作成するには、どのような正規表現を使用する必要がありますか?コマンドラインからファイルを操作するPerlの正規表現
お願いします ありがとうございます。
ファイル内で、xyz.txtと言っています。任意の数字のパターンとそれに続くドットの例を置き換えたい:1.、2.、10.、11。空白で。 上記を行うためにファイルに作用するコマンドラインでperlコマンドを作成するには、どのような正規表現を使用する必要がありますか?コマンドラインからファイルを操作するPerlの正規表現
お願いします ありがとうございます。
回答(テストしていません):
perl -ipe "s/\d+\./ /g" xyz.txt
これは、Perl onelinerする必要がありますか?
perl -i -pe 's/\d+\./ /g' <fileName>
のPerlコマンドラインオプション:-i
は、入力ファイルに何が起こるかを指定するために使用されます。ファイル拡張子を指定しないと、元のファイルは失われ、Perlのmunged出力に置き換えられます。
perl -i.bak -pe 's/\d+\./ /g' <fileName>
元のファイル自体があなたの出力が含まれます>.bak
サフィックスと<ファイル名で保存されます:たとえば、場合、私はこれを持っていました。
-p
はややこのようなに見えるprintループであなたのPerlプログラムを囲むことを意味します
while ($_ = <>) {
<Your Perl one liner>
print "$_";
}
これは何が起こっているのか、やや単純化した説明です。コマンドラインからperldoc perlrun
を実行すると、実際のperlループを見ることができます。主な考え方は、あなたがsed
またはawk
のようなファイルの各行で行動することができるということです。
-e
には、単にPerlコマンドが含まれています。
あなたは、あまりにもファイルのリダイレクトを行うことができます
perl -pe 's/\d+\./ /g' <xyz.txt> xyz.txt.out
+1は、-iの非常に便利な使い方を指摘し、-pの背後にある仕組みを説明し、リダイレクションの代替案を表示するためのものです。 – Olfan
Windows CMDでActive Perlを使用している場合は、正規表現文字列を囲むために二重引用符 ""を使用してください。そうしないと正しく動作しません。ちょうど私のウィンドウ10のコマンドラインでテストされます。 –
両方
perl -ipe "s/\d+\./ /g" xyz.txt
と
perl -pie
は私のシステム上で実行することはできません。それは言葉を綴るが、それは問題ではありませんので、私は個人的にperlの-pie` `入力したい
perl -i -pe
:
私は、次の順序を使用します。 –