次のデータを含むファイルがあります。
a 1
b 2
c,d,e 3,4,5
f 6
g,h 7,8
...次のような出力が必要です。
a 1
b 2
c 3
d 4
e 5
f 6
g 7
h 8
Pythonを使用してこれを行うことはできますが、シェルスクリプトを使用してこれを試したいと思います。まず、区切り文字「、」を含む行を分割してから作業を続行します。これまで私はこれを行を分離するために使用しました。
perl -F, -ane 'print if $#F >=1' filename
...しかし、次のステップで詰まっています。
ベストアンサー1
そしてperl
$ perl -lane '@v=split/,/,$F[1]; $i=0;
print "$_ $v[$i++]" for split/,/,$F[0]' ip.txt
a 1
b 2
c 3
d 4
e 5
f 6
g 7
h 8
最初/2番目の列を分割し、インデックスカウンタを初期化してから、別の列を繰り返し分割してペアを印刷します。
-a
オプションは自動的に入力行をスペースに分割し、結果を@F
配列に保存します。