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 ...
sed 1d sample-hd.txt tail -n +2 sample-hd.txt perl -ne 'print if$.>1' sample-hd.txt
cat sample.txt (TSV) 旅行 男 ゲーム 男 ゲーム 女 旅行 男 ゴルフ 男 山登り 男 手芸 女 ゴルフ 男 アロマ 女 旅行 女 ライブ 女
perl -F"\t" -anle ' $h{$F[0]}{$F[1]}++; $s{$F[0]}++; END{ for$i(sort{$s{$b}<=>$s{$a}}keys%h){$r=$h{$i}; print join("\t",$i,$s{$i},map{"$_:$$r{$_}"} sort{$$r{$b}<=>$$r{$a}||$a cmp $b}keys%$r)} } ' sample.txt 旅行 3 男:2 女:1 ゴルフ 2 男:2 ゲーム 2 女:1 男:1 ライブ 1 女:1 山登り 1 男:1 手芸 1 女:1 アロマ 1 女:1
cat sample-lf.txt 政治 選挙:1 速報:1 外交:3 防衛:2 政治 選挙:2 予算:1 防衛:2 オスプレイ:2 スポーツ 野球:1 速報:1 スタジアム:3 エネルギー:1 スポーツ 移籍:2 速報:1 日本代表:1 サッカー:2 スタジアム:1 エンタメ 不倫:1 結婚:1 離婚:1 エンタメ 速報:1 離婚:1 ものまね:1 破綻:2 エンタメ 結婚:1 離婚:1 独立:1 科学 感染症:2 環境:2 医療:1 遺伝子:3 科学 エネルギー:1 環境:1 惑星:3 ニュートリノ:1
perl -nle ' BEGIN{$L=$F=1} ($k,@r)=split(/ /,$_); $l{$k}=$L++if!$l{$k}; print join" ",$l{$k}, sort{$a<=>$b}map{/^(.+):(.+)$/;$f{$1}=$F++if!$f{$1};"$f{$1}:$2"}@r; ' sample-lf.txt 1 1:1 2:1 3:3 4:2 1 1:2 4:2 5:1 6:2 2 2:1 7:1 8:3 9:1 2 2:1 8:1 10:2 11:1 12:2 3 13:1 14:1 15:1 3 2:1 15:1 16:1 17:2 3 14:1 15:1 18:1 4 19:2 20:2 21:1 22:3 4 9:1 20:1 23:3 24:1
cat sample.txt (TSV) 旅行 男 ゲーム 男 ゲーム 女 旅行 男 ゴルフ 男 山登り 男 手芸 女 ゴルフ 男 アロマ 女 旅行 女 ライブ 女
perl -F"\t" -anle ' $F[1]=~s/^((?<Man>男)|(?<Woman>女))$/(keys%+)[0]/e; print join"\t",@F ' sample.txt 旅行 Man ゲーム Man ゲーム Woman 旅行 Man ゴルフ Man ...
perl -F"\t" -anle ' $F[0]=~s/^((?<Travel>旅行)|(?<Game>ゲーム)|(?<Golf>ゴルフ))$/(keys%+)[0]/e; print join"\t",@F ' sample.txt Travel 男 Game 男 Game 女 Travel 男 Golf 男 ...
cat sample-dic.txt (辞書ファイル, TSV) 旅行 Travel ゲーム Game ゴルフ Golf 男 Man 女 Woman
perl -F"\t" -anle ' BEGIN{open(F,shift);map{/^(.+)\t(.+)$/;$d{$1}=$2}<F>} $F[0]=$d{$F[0]}||$F[0]; $F[1]=$d{$F[1]}||$F[1]; print join"\t",@F ' sample-dic.txt sample.txt Travel Man Game Man Game Woman Travel Man Golf Man ...