【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
