6

chr最初の列のすべての文字に挿入する方法を誰か教えてください。

ファイル

1 34566 34765    
2 45678 45789
3 34567 34799
X 67895 66900
Y 34567 34890

ファイルアウト

chr1 34566 34765
chr2 45678 45789
chr3 34567 34799
chrX 67895 66900
chrY 34567 34890

sed -i特定の列に適用する方法がわかりません。私は構文が苦手なので、説明を分解していただければ幸いです。また、これにはawkを使用したほうがよいでしょうか?

4

6 に答える 6

0
awk '{print "chr"$0}'

フィールド区切りがないため、問題のファイルで機能します。その場合、使用できます(たとえば、パイプ区切りファイルの場合):

awk 'BEGIN { FS = "|";OFS="|"} {$97="chr"$0;print}' 
于 2016-09-27T16:22:12.063 に答える
0

$ cat file.in 1 34566 34765 2 45678 45789 3 34567 34799 X 67895 66900 Y 34567 34890

$ awk '$1="chr"$1 {print}' file.in chr1 34566 34765 chr2 45678 45789 chr3 34567 34799 chrX 67895 66900 chrY 34567 34890

本質的に、列1の前にスペースがあるかどうかに関係なく、「chr」$1の値を$1にリダイレクトし、残りの行を出力します。

于 2017-07-25T05:23:42.337 に答える
0
sed 's/^\s*/chr/'

反対する前に空白がないことを確認してください。あなたが知っているなら、\sは必要ありません

于 2013-11-03T15:19:37.417 に答える