printf 명령은 한 줄에 2개의 매개변수를 인쇄합니다.

printf 명령은 한 줄에 2개의 매개변수를 인쇄합니다.

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)

관련 정보