ablog

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

あるディレクトリ以下の CSV ファイルをコンカチして最初の列にファイル名を入れる Perl ワンライナー

テストデータを作って、

yoheia% for i in {1..10}
for% do
for% perl -le 'print join(q/,/,(1..10))' >`printf "%02d" $i`.tsv
for% done
yoheia% ls 
01.tsv	02.tsv	03.tsv	04.tsv	05.tsv	06.tsv	07.tsv	08.tsv	09.tsv	10.tsv
yoheia% cat * 
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10

Perl ワンライナーでコンカチすると、

yoheia% perl -ne 'print qq/$ARGV,$_/' * > all.tsv
yoheia% cat all.tsv
01.tsv,1,2,3,4,5,6,7,8,9,10
02.tsv,1,2,3,4,5,6,7,8,9,10
03.tsv,1,2,3,4,5,6,7,8,9,10
04.tsv,1,2,3,4,5,6,7,8,9,10
05.tsv,1,2,3,4,5,6,7,8,9,10
06.tsv,1,2,3,4,5,6,7,8,9,10
07.tsv,1,2,3,4,5,6,7,8,9,10
08.tsv,1,2,3,4,5,6,7,8,9,10
09.tsv,1,2,3,4,5,6,7,8,9,10
10.tsv,1,2,3,4,5,6,7,8,9,10

こんな具合。


コンカチって言葉は普段使わないけど、ふと思い出したので使ってみた。
汎用機とかされてる方が使われるイメージがあります。