【Perl】1行目がタイトル(ラベル)になっているTSVデータをブラウズしやすくする【ワンライナー】
2015-09-01-1
[Programming][Perl]
よくやる作業についてメモ。
1行目がラベル行になっている、ものすごくカラムが多いTSVなどに。
1行目無視して2行目以降のみ出す処理:
1行目がラベル行になっている、ものすごくカラムが多いTSVなどに。
cat sample-hd.txt 趣味 性別 年齢 旅行 男 28 ゲーム 男 21 ゲーム 女 23 旅行 男 31 ゴルフ 男 30 山登り 男 29 手芸 女 28 ゴルフ 男 34 アロマ 女 22 旅行 女 27 ライブ 女 2
perl -F"\t" -anle ' if($.==1){@l=@F;next} print join"\t",map{"$l[$_]:$F[$_]"}(0..$#F); ' sample-hd.txt 趣味:旅行 性別:男 年齢:28 趣味:ゲーム 性別:男 年齢:21 趣味:ゲーム 性別:女 年齢:23 趣味:旅行 性別:男 年齢:31 趣味:ゴルフ 性別:男 年齢:30 趣味:山登り 性別:男 年齢:29 趣味:手芸 性別:女 年齢:28 趣味:ゴルフ 性別:男 年齢:34 趣味:アロマ 性別:女 年齢:22 趣味:旅行 性別:女 年齢:27 趣味:ライブ 性別:女 年齢:20
perl -F"\t" -anle ' if($.==1){@l=@F;next} print join"",map{"$l[$_]:$F[$_]\n"}(0..$#F); ' sample-hd.txt 趣味:旅行 性別:男 年齢:28 趣味:ゲーム 性別:男 年齢:21 趣味:ゲーム 性別:女 年齢:23 趣味:旅行 性別:男 年齢:31 ...
1行目無視して2行目以降のみ出す処理:
sed 1d sample-hd.txt tail -n +2 sample-hd.txt perl -ne 'print if$.>1' sample-hd.txt