古い記事
ランダムジャンプ
新しい記事
よくやる作業についてメモ。
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