일괄 커밋 스크립트에서 아래와 같이 "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