AWKを使用して各列の特定の文字数を計算し、それを新しい列として追加するには?

AWKを使用して各列の特定の文字数を計算し、それを新しい列として追加するには?

Nファイルの2番目の列の文字数を数え、この数を3番目の列に印刷したいと思います。入力ファイルの例(タブ区切り):

sample1 TCTNG
sample2 CCNGGGGGTN
sample3 GGGNNNTC

希望の出力(タブ区切り):

sample1 TCTNG   1
sample2 CCNGGGGGTN  2
sample3 GGGNNNTC    3

次の混乱したバージョンを入手できますが、可能であれば1行のバージョンが必要ですawk

> awk -F '\t' '{print $2}' file.txt | awk -FN '{print NF-1}' > NCount.txt
> paste -d '\t' file.txt NCount.txt

sample1 TCTNG   
    1
sample2 CCNGGGGGTN  
    2
sample3 GGGNNNTC
    3

ベストアンサー1

awk 'BEGIN{FS=OFS="\t"} {print $0, gsub(/N/,"",$2)}' file
sample1 TCTNG   1
sample2 CCNGGGGGTN  2
sample3 GGGNNNTC    3

ベース: 1行あたりのパターン数を印刷するには?

おすすめ記事