14
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Perlワンライナー

Last updated at Posted at 2016-07-12

最近の開発では、Perlは使用されることが少ないですが、
今でもインフラ環境では必須言語であるPerl。

特に、Windows環境では、
・バッチの貧弱さ
・PowerShellのわかりにくさ

から、perlワンライナー知識は今でも必須だと思います。
この記事では、perlワンライナーの自分用まとめと、
perl以外の軽量言語(ruby,python)でのワンライナーについて、
比較していこうと思います。

perlコマンドのオプション

-e 'code' コードの実行
-w 警告
-n 読み込み(出力しない)
-p 読み込み(出力する)
-l 行末処理
-M'モジュール名' モジュールのロード
-a awkモード

perlコマンド使い方

-wl 出力を生成
-wnl 入力または入出力を生成
-wnla フィールド処理
-wnlaF'sep' フィールド処理(カスタムセパレータ)
-i.extension バックアップファイルを作成してからファイルを編集

perl例文

perl -wl -e 'print 22/7;' 単純な出力
perl -wnl -e 'print;' file1 file2 cat風出力

perl -wnl -e '/RE/ and print;' file1 grep風出力
perl -wnl -e '/RE/ or print;' file1 grep -v風出力
perl -wnl -e '/RE/i and print;' file1 grep -i風(大文字小文字を意識しない)
perl -wnl -e '/RE/ and print $ARGV and close ARGV;' file1 grep -l風出力(該当キーワードが含まれるファイル名を出力)
perl -wnl -e '/\QSTRING\E/ and print;' file fgrep風(文字リテラルとのマッチング)

perl -wpl -e 's/RE/replacement/g;' file1 sed風の置換
perl -wpl -e '$.==N and s/RE/replacement/g;' file1 N行目のみ置換
perl -wpl -e 's/RE/$1/g;' file1 後方置換
perl -wpl -e '$.>=N and print;' file1 N行目以降を表示

perl -wnla -e 'print $F[0];' file1 第一フィールドを表示

find . -type f -print | perl -nwlaF'/' -e 'print $F[2];' file1 findでカレントディレクトリ以下のファイルを検索し、perlで第二フィールドを表示

14
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?