printf
백분율 기호를 사용하여 아래 출력을 표시하는 방법은 무엇입니까?
used1=64.1
printf "USED =%.1f\n", used1 " %"
출력이 필요함
output is USED=64.1%
아래는 awk의 실제 스크립트입니다.
isi storagepool list -v |awk 'function num2gb(n) { if (n ~ /T$/) return n / 1; return n / 1024; }
/Requested Protection:/ { parity=substr($NF,length($NF)-1,1) }
/Nodes:/ { nodes=$NF }
/HDD Total/ { hdd_total=$NF }
/HDD Used/ { hdd_used=num2gb($NF) }
END {
multiplier=nodes-parity
total=hdd_total/nodes*multiplier
used=hdd_used/nodes
eu=used*multiplier*0.8
et=total*0.8
used1=eu/et*100
print "parity =" parity
print "NodeNumber =" nodes
printf ("Total =%.1f\n", total, TB);
printf "Effective Total volume =%.1f\n", total*0.8, " TB"
printf "USED =%.1f\n", used1 " %"
printf "Effective used=%.1f\n", used*multiplier*0.8, " TB"
printf "Available volume=%.1f\n", (hdd_totalhdd_used)/nodes*multiplier*0.8, " TB"
printf "HDD Total=%.1f\n", hdd_total}'
답변1
for는 %
인쇄 형식을 정의하는 특수 문자입니다. 출력에서 텍스트를 사용하고 바람직하게는 첫 번째 제어 영역 내부로 이동하려면 에서 printf
다른 문자로 이스케이프해야 합니다 %
. 바라보다printf
%
사람들이 인쇄하다
printf("USED =%.1f %%\n", used1)
또는 아래와 같이 작은따옴표로 묶을 수도 있습니다.
printf("USED =%.1f '%'\n", used1)
아니면 다음과 같이 인쇄할 수도 있습니다.씨캐릭터 사용법 %c
.
printf("USED =%.1f %c\n", used1, "%")
또는 대신 ASCII 코드를 사용하십시오.
printf("USED =%.1f %c\n", used1, 37)