ablog

不器用で落着きのない技術者のメモ

Perl ワンライナーでカスタムフィールドセパレータを使う

例えば1つ以上の空行をレコードセパレータ、改行をフィールドセパレータとしたい場合以下のようにする。

hoge.txt があって、

% cat hoge.txt
name:smith
age:40
gender:male

name:neo
age:30
gender:male

name:trinity
age:28
gender:female

1フィールド目に neo を含むレコードの2フィールド目を表示してみる。

% perl -00 -F'\n' -lane 'print $F[1] if($F[0] =~ /neo/)' hoge.txt
age:30

-00 で1つ以上の空行がレコードセパレータに、-F'\n' で改行をフィールドセパレータとしている。


[参考]

ミニマルPerl ―Unix/LinuxユーザのためのPerl習得法

ミニマルPerl ―Unix/LinuxユーザのためのPerl習得法

P.21 2.1.7 入力レコードセパレータを変更する: -0digits
P.133 5.3.4 カスタムフィールドセパレータを使う


[関連]
Perlワンライナーでレコードセパレータを変更する - ablog