複数の列に数字を接尾辞として追加する

複数の列に数字を接尾辞として追加する

私のデータは次のとおりです。

chr1    enhancer_   875557  876449  .   enhancer_
chr1    enhancer_   876970  877622  .   enhancer_
chr1    enhancer_   995719  996320  .   enhancer_
chr1    enhancer_   1142786 1143060 .   enhancer_

awkを使用して、列2と6の終わりに増加する数値を追加したいと思います。したがって、出力は次のようになります。

chr1    enhancer_1  875557  876449  .   enhancer_1
chr1    enhancer_2  876970  877622  .   enhancer_2
chr1    enhancer_3  995719  996320  .   enhancer_3
chr1    enhancer_4  1142786 1143060 .   enhancer_4

私はほとんどの時間を検索するのに費やしましたが、これはできませんでした。

答え1

解決策1:

awk '{print $1 " " $2 NR " " $3 " " $4 " " $5 " " $6 NR}' yourfile.txt

ソリューション1スクリーンショット

解決策2:

awk '{$2 = $2 NR; $6=$6 NR; print }' yourfile.txt

ソリューション2スクリーンショット

各交換用シーケンサー

各置換項目を並べ替えるには、Perl バージョンを使用できます。

perl -pe 's/enhancer_/$& .++$n/ge' yourfile.txt

シーケンスを含むPerlソリューション

答え2

これは数字だけを挿入し、例の追加の行スペースを保持します。

awk '{gsub(/enhancer_/,"enhancer_"NR); print;}'  fileinput.txt

出力:

chr1    enhancer_1   875557  876449  .   enhancer_1
chr1    enhancer_2   876970  877622  .   enhancer_2
chr1    enhancer_3   995719  996320  .   enhancer_3
chr1    enhancer_4   1142786 1143060 .   enhancer_4

関連情報