私は次のような状況にあります。
my data
:
ID01 120120101
ID02 101010101
ID03 210210210
ID04 505052120
私が望むデータは次のとおりです。output
ID01 1 2 0 1 2 0 1 0 1
ID02 1 0 1 0 1 0 1 0 1
ID03 2 1 0 2 1 0 2 1 0
ID04 5 0 5 0 5 2 1 2 0
だから私は2番目の列に現れるすべての数字を分離したいと思います(私のデータ)、しかし最初の列はそのままにしておく必要があります。
そのために2つのファイルを作成してみました。 1つはID($ 1-file1)、もう1つはスペースで区切られたシーケンス(file2)です。試した後:
sed -i -- 's//\t/g' file2
ただし、次のエラーが発生します。
sed: -e expression #1, char 0: no previous regular expression
この問題をどのように解決できますか?
ベストアンサー1
どうですか?
perl -alne 'print join " ", $F[0], split("", $F[1])' data
ID01 1 2 0 1 2 0 1 0 1
ID02 1 0 1 0 1 0 1 0 1
ID03 2 1 0 2 1 0 2 1 0
ID04 5 0 5 0 5 2 1 2 0
(完全に)タブ区切りの出力が必要な場合は、次のように変更します。
perl -alne 'print join "\t", $F[0], split("", $F[1])' data
または、ID
2番目のフィールドの数字の後にタブを保持しますが、スペースで区切るには、
perl -alne 'print join "\t", $F[0], join " ", split("", $F[1])' data