2008/08/24(日) [n年前の日記]
#1 [prog] Windows上でのPerlのワンライナーのやり方がよくわからない
eclipse上で正規表現を使って選択範囲を置換したいと思ったものの、指定の仕方が判らない。行末に特定文字列を追加したいだけなのだけど…。ならばと、選択範囲をPerl等に渡して置換しようかと。ワンライナーが使えるはず。
が。巷のワンライナー関連の紹介ページを見ながら、まずは Windows + ActivePerl + コマンドプロンプト上で試してみたけど。アレはUNIX環境上でのみ通用するソレ、という感じらしい。
諦めきれずに関連情報を検索していたら、「昔の ActivePerl ならともかく、今の ActivePerlはワンライナーを使えるはず」という一文を見つけて、ならばとActivePerlのドキュメントを眺めたり。どうやら、「'」で挟まずに「"」で挟んで、かつ、「"」を書きたいときは「""」と書けばいいらしい。いや、「""」を使わず「qq(~)」「q(~)」と書くこともできる、とも書いてあった。
たとえば、行末にJavaのコメント行をつけるときはこうなる。
が。巷のワンライナー関連の紹介ページを見ながら、まずは 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
[ ツッコむ ]
以上です。