次の種類のファイルがあります。
transcr_25793 +
YAL039C -
transcr_25793 +
YAL037C-B -
transcr_20649 +
YBL100C -
transcr_7135 +
YBL029C-A -
transcr_11317 +
YBL067C -
transcr_25793 +
YAL038W +
transcr_7135 +
YBL029W +
私は次のようなものを手に入れようとしています。
transcr_7135 +
YBL029C-A -
transcr_7135 +
YBL029W +
transcr_11317 +
YBL067C -
transcr_20649 +
YBL100C -
transcr_25793 +
YAL039C -
transcr_25793 +
YAL037C-B -
transcr_25793 +
YAL038W +
その後、後で次のようなものを探していました。
transcr_7135 +
YBL029C-A -
YBL029W +
transcr_11317 +
YBL067C -
transcr_20649 +
YBL100C -
transcr_25793 +
YAL039C -
YAL037C-B -
YAL038W +
sort
マニュアルといくつかの記事を見てみましたが、それに適したものが見つからず、sort
数値を使用して奇数行を取得します。
ベストアンサー1
純粋なgawk
ソリューション:
awk -F_ 'NR%2{i=$2;next}{a[i]=a[i]"\n"$0}
END{PROCINFO["sorted_in"]="@ind_num_asc";
for(i in a) printf "%s","transcr_"i""a[i]"\n"}' file
秘密は、a
PROCINFO特殊配列のいくつかの助けを借りて、配列のインデックスを数値でソートすることです。gawk
transcr_7135
YBL029C-A -
YBL029W +
transcr_11317
YBL067C -
transcr_20649
YBL100C -
transcr_25793
YAL039C -
YAL037C-B -
YAL038W +
しかし残念ながら、awkは自然なソートオプションを提供していません。バージョンの並べ替え(数字を含むテキストベース)