次のように、ファイルから最初の列を削除する必要があります。
165 1 chr22 42090593 0 1 chr22 42090609 1 42 42
166 1 chr22 42090593 0 1 chr22 42090654 1 42 42
167 1 chr22 42090595 0 1 chr22 42090633 1 42 42
168 0 chr22 42090612 0 1 chr22 42090656 1 42 42
169 0 chr22 42090614 0 0 chr22 42090617 1 40 42
170 0 chr22 42090647 0 1 chr22 42090749 1 42 42
171 1 chr22 42090684 0 1 chr22 42090692 1 42 42
172 1 chr22 42090733 0 1 chr22 42090743 1 42 42
173 1 chr22 42090733 0 1 chr22 42090775 1 42 42
174 1 chr22 42090733 0 1 chr22 42090789 1 42 42
175 1 chr22 42090757 0 1 chr22 42090787 1 42 24
176 0 chr22 42090778 0 0 chr22 42090790 1 42 42
177 0 chr22 42090800 0 0 chr22 42090802 1 42 42
178 0 chr22 42090803 0 0 chr22 42090806 1 42 42
注文する
awk '{$1=""; print $0}'
最初の列を正しく削除しますが、この方法で型を変更します。
1 chr22 51178322 0 0 chr22 51178659 1 42 42
0 chr22 51178661 0 0 chr22 51178663 1 42 42
0 chr22 51178667 0 1 chr22 51178790 1 42 23
1 chr22 51178755 0 0 chr22 51178764 1 42 42
0 chr22 51178808 0 1 chr22 51178871 1 42 42
1 chr22 51178869 0 1 chr22 51178895 1 42 42
1 chr22 51178881 0 1 chr22 51178893 1 42 42
1 chr22 51178881 0 1 chr22 51178895 1 42 42
1 chr22 51179213 0 1 chr22 51179213 1 42 42
1 chr22 51180087 0 1 chr22 51180093 1 42 42
1 chr22 51180134 0 0 chr22 51181889 1 42 42
0 chr22 51186192 0 0 chr22 51186192 1 42 42
0 chr22 51186192 0 0 chr22 51186192 1 42 42
どんなアイデアがありますか?
ベストアンサー1
あなたのアプローチには2つの問題があります。まず、これはタブ区切りファイルのように見え、awkにタブを使用するように指示しませんでした。次に、awkでフィールドを設定するときに""
フィールドを削除するのではなく、消去するだけです。したがって、それでも印刷されるので、出力の各行の先頭に余分なスペースがあります。
したがって、awkでこれを行うには、次のことが必要です(例の先行スペースは実際にはファイルの一部ではないと仮定します)。
$ awk -F"\t" 'BEGIN{OFS="\t"}{for(i=2;i<NF;i++){printf "%s%s",$i,OFS} print $NF}' file
1 chr22 42090593 0 1 chr22 42090609 1 42 42
1 chr22 42090593 0 1 chr22 42090654 1 42 42
1 chr22 42090595 0 1 chr22 42090633 1 42 42
0 chr22 42090612 0 1 chr22 42090656 1 42 42
0 chr22 42090614 0 0 chr22 42090617 1 40 42
0 chr22 42090647 0 1 chr22 42090749 1 42 42
1 chr22 42090684 0 1 chr22 42090692 1 42 42
1 chr22 42090733 0 1 chr22 42090743 1 42 42
1 chr22 42090733 0 1 chr22 42090775 1 42 42
1 chr22 42090733 0 1 chr22 42090789 1 42 42
1 chr22 42090757 0 1 chr22 42090787 1 42 24
0 chr22 42090778 0 0 chr22 42090790 1 42 42
0 chr22 42090800 0 0 chr22 42090802 1 42 42
0 chr22 42090803 0 0 chr22 42090806 1 42 42
しかし、次のような他のツールはcut
すでに言及ここはもっと簡単です。ファイルがタブで区切られている場合は、次のことができます。
$ cut -f2- file
1 chr22 42090593 0 1 chr22 42090609 1 42 42
1 chr22 42090593 0 1 chr22 42090654 1 42 42
1 chr22 42090595 0 1 chr22 42090633 1 42 42
0 chr22 42090612 0 1 chr22 42090656 1 42 42
0 chr22 42090614 0 0 chr22 42090617 1 40 42
0 chr22 42090647 0 1 chr22 42090749 1 42 42
1 chr22 42090684 0 1 chr22 42090692 1 42 42
1 chr22 42090733 0 1 chr22 42090743 1 42 42
1 chr22 42090733 0 1 chr22 42090775 1 42 42
1 chr22 42090733 0 1 chr22 42090789 1 42 42
1 chr22 42090757 0 1 chr22 42090787 1 42 24
0 chr22 42090778 0 0 chr22 42090790 1 42 42
0 chr22 42090800 0 0 chr22 42090802 1 42 42
0 chr22 42090803 0 0 chr22 42090806 1 42 42
他の選択肢:
$ grep -oP '^\s*\S+\s*\K.*' file
1 chr22 42090593 0 1 chr22 42090609 1 42 42
1 chr22 42090593 0 1 chr22 42090654 1 42 42
1 chr22 42090595 0 1 chr22 42090633 1 42 42
0 chr22 42090612 0 1 chr22 42090656 1 42 42
0 chr22 42090614 0 0 chr22 42090617 1 40 42
0 chr22 42090647 0 1 chr22 42090749 1 42 42
1 chr22 42090684 0 1 chr22 42090692 1 42 42
1 chr22 42090733 0 1 chr22 42090743 1 42 42
1 chr22 42090733 0 1 chr22 42090775 1 42 42
1 chr22 42090733 0 1 chr22 42090789 1 42 42
1 chr22 42090757 0 1 chr22 42090787 1 42 24
0 chr22 42090778 0 0 chr22 42090790 1 42 42
0 chr22 42090800 0 0 chr22 42090802 1 42 42
0 chr22 42090803 0 0 chr22 42090806 1 42 42
または
$ perl -pe 's/^\s*\S+\s*//' file
1 chr22 42090593 0 1 chr22 42090609 1 42 42
1 chr22 42090593 0 1 chr22 42090654 1 42 42
1 chr22 42090595 0 1 chr22 42090633 1 42 42
0 chr22 42090612 0 1 chr22 42090656 1 42 42
0 chr22 42090614 0 0 chr22 42090617 1 40 42
0 chr22 42090647 0 1 chr22 42090749 1 42 42
1 chr22 42090684 0 1 chr22 42090692 1 42 42
1 chr22 42090733 0 1 chr22 42090743 1 42 42
1 chr22 42090733 0 1 chr22 42090775 1 42 42
1 chr22 42090733 0 1 chr22 42090789 1 42 42
1 chr22 42090757 0 1 chr22 42090787 1 42 24
0 chr22 42090778 0 0 chr22 42090790 1 42 42
0 chr22 42090800 0 0 chr22 42090802 1 42 42
0 chr22 42090803 0 0 chr22 42090806 1 42 42
または
$ perl -F'\t' -lane 'print join "\t",@F[1..$#F]' file
1 chr22 42090593 0 1 chr22 42090609 1 42 42
1 chr22 42090593 0 1 chr22 42090654 1 42 42
1 chr22 42090595 0 1 chr22 42090633 1 42 42
0 chr22 42090612 0 1 chr22 42090656 1 42 42
0 chr22 42090614 0 0 chr22 42090617 1 40 42
0 chr22 42090647 0 1 chr22 42090749 1 42 42
1 chr22 42090684 0 1 chr22 42090692 1 42 42
1 chr22 42090733 0 1 chr22 42090743 1 42 42
1 chr22 42090733 0 1 chr22 42090775 1 42 42
1 chr22 42090733 0 1 chr22 42090789 1 42 42
1 chr22 42090757 0 1 chr22 42090787 1 42 24
0 chr22 42090778 0 0 chr22 42090790 1 42 42
0 chr22 42090800 0 0 chr22 42090802 1 42 42
0 chr22 42090803 0 0 chr22 42090806 1 42 42