[シェル] ワンライナーで改行コードを削除する (perl)

ワンライナーで改行コードを全て削除する方法です。 最初はsedコマンドでやろうとしていたのですが、思った様にうまく行きませんでした。 調べてみると、sedコマンドでやろうとするとちょっと面倒そうな感じの記事が見つかりました。 その中で紹介されていたのですが、perlを使えば一発でできるとの事です。 ```bash `gutter:false; $ perl -pe 's/\n//g' ``` -pオプションを使うと、perlは自動的に以下のコードを作成します。 ```perl `gutter:true; while (<>) { ... # your program goes here } continue { print or die "-p destination: $!\n"; } ``` -e の後に1行のコードを書くと、while文の下にコードを入れてくれます。 セミコロンは省略できますが、複数の-e引数を使う時には、最後のe引数のセミコロンのみ省略できます。 結果的に以下のコードが実行される事になります。 ```perl `gutter:true; while (<>) { s/\n//g; print; } continue { print or die "-p destination: $!\n"; } ``` 引数の意味を知ると、なぜそうなっているのかわかるので面白いですね。 久しぶりに「初めてのPerl」を引っ張り出してきました。

0 件のコメント :

コメントを投稿