Linux
從 awk 列印特定 coulumn 的值 - 在遠端 SSH 中傳遞給 awk - 不工作。已嘗試“$1”
$ /usr/bin/ssh user@server "sudo sysdumpdev -e |awk '{print \$7}' |awk '{size=\$1/1024/1024; printf("%d\n", size);}'" Syntax Error The source line is 1. The error context is {size=$1/1024/1024; >>> printf(% <<< dn, size);} awk: 0602-502 The statement cannot be correctly parsed. The source line is 1.
您必須在雙引號內轉義雙引號:
/usr/bin/ssh user@server "sudo sysdumpdev -e |awk '{print \$7}' |awk '{size=\$1/1024/1024; printf(\"%d\n\", size);}'"
這兩個
awk
命令可以合併為一個:/usr/bin/ssh user@server "sudo sysdumpdev -e |awk '{printf(\"%d\n\", \$7/1024/1024);}'"
另一種方法是在本地電腦上執行
awk
命令:/usr/bin/ssh user@server sudo sysdumpdev -e |awk '{print $7}' |awk '{size=$1/1024/1024; printf("%d\n", size);}' /usr/bin/ssh user@server sudo sysdumpdev -e |awk '{printf("%d\n", $7/1024/1024);}'
**編輯:**引用dave_thompson_085的評論
雖然我更喜歡本地格式,但您可以將遠端格式簡化為
ssh u@s "sudo sysdumpdev -e | awk '{print int($ 7/1024/1024)}' "
–
$ 7
本地 shell 不將其視為參數,但(遠端)awk 將其視為欄位