変数のインスタンス数を計算し、bashスクリプトで行/列形式を再指定します。

変数のインスタンス数を計算し、bashスクリプトで行/列形式を再指定します。

一括コミットスクリプトで、以下のように "nodefile.123"というファイルを作成しました。

Bear-pg0208u33b

Bear-pg0208u33b

Bear-pg0208u33b

Bear-pg0210u19a

Bear-pg0210u19a

Bear-pg0210u07a

私のプログラムが各コアで実行される行ごとに常に1つのエントリがあるため、-33bに3つのコア、-19aに2つのコア、-07aに1つのコアがあります。ノードあたりのコア数を計算し、次のようにデータ型を指定する必要があります。

bear-pg0208u33b:3:bear-pg0210u19a:2:bear-pg0210u07a:1

これまで、次のコードがあります。

ノードファイルの並べ替え。3314190 uniq -c> sorting.txt |

rev="$(awk '{for(i=NF;i>=1;i--) printf "%s ", $i;print ""}' Sorted.txt)"

入力を計算して反転します。今、それらを一行に変更し、スペースをコロンに置き換える必要があると思いますか?

答え1

あなたはそれを使用することができますawk

awk 'BEGIN{c=1;OFS=":";ORS=":"} {if(u!=$0 && u!=""){print u,c;u=$0;c=1} else if(u!=$0){u=$0}else{c=c+1}} END{ORS="";print u,c;}' file

そして、ファイルに空白行があってはならないので、次のように削除できます。

sed -i '/^$/d' file

関連情報