mieki256's diary



2008/08/24() [n年前の日記]

#1 [prog] Windows上でのPerlのワンライナーのやり方がよくわからない

eclipse上で正規表現を使って選択範囲を置換したいと思ったものの、指定の仕方が判らない。行末に特定文字列を追加したいだけなのだけど…。ならばと、選択範囲をPerl等に渡して置換しようかと。ワンライナーが使えるはず。

が。巷のワンライナー関連の紹介ページを見ながら、まずは Windows + ActivePerl + コマンドプロンプト上で試してみたけど。アレはUNIX環境上でのみ通用するソレ、という感じらしい。

諦めきれずに関連情報を検索していたら、「昔の ActivePerl ならともかく、今の ActivePerlはワンライナーを使えるはず」という一文を見つけて、ならばとActivePerlのドキュメントを眺めたり。どうやら、「'」で挟まずに「"」で挟んで、かつ、「"」を書きたいときは「""」と書けばいいらしい。いや、「""」を使わず「qq(〜)」「q(〜)」と書くこともできる、とも書いてあった。
perl -e "print ""Hello world"""
perl -e "print qq(Hello world)"
こんな感じに書くようで。 *1

たとえば、行末にJavaのコメント行をつけるときはこうなる。
cat test.txt | perl -nle "s/$/ \/\/ 0/;print $_"
*2
*1: -e オプションは、その後に続く文を実行文として扱う、というオプションらしい。
*2: -l は、最後に改行をつけて出力してくれるオプション。-n は、「while(<>) { 〜 }」で囲まれている=行単位で処理をすることを指定するオプション。

以上です。

過去ログ表示

Prev - 2008/08 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project