다음 lsblk
명령은 디스크 사용량을 바이트 단위로 인쇄합니다.
lsblk -bio KNAME,TYPE,SIZE,MODEL| grep disk
sda disk 298999349248 AVAGO
sdb disk 1998998994944 AVAGO
sdc disk 1998998994944 AVAGO
sdd disk 1998998994944 AVAGO
sde disk 98998994944 AVAGO
디스크가 300000000000보다 큰 경우 파이프 awk
나 perl
한 줄 문자 뒤에 추가하거나 다른 방법 으로 디스크를 인쇄하는 방법
예상 출력:
lsblk -bio KNAME,TYPE,SIZE,MODEL| grep disk | ......
sdb disk 1998998994944 AVAGO
sdc disk 1998998994944 AVAGO
sdd disk 1998998994944 AVAGO
답변1
awk
를 사용하는 대신 패턴 일치에 자체적으로 사용할 수 있습니다 grep
.
lsblk -bio KNAME,TYPE,SIZE,MODEL| awk '/disk/ && $3> 300000000000 || NR==1'
즉, 과학적 가치가 있습니다 3e11
.
답변2
짧은앗방법:
lsblk -nbio KNAME,TYPE,SIZE,MODEL | awk '$3>3e11'
-n
(--noheadings
) - 헤더를 인쇄하지 않습니다.$3
- 세 번째 필드(SIZE
열)3e11
-두번째-상징. 문자E
(또는e
)는 일반적으로 "시간"을 의미하는 데 사용됩니다.십" "( " 로 쓸 수 있음)의 거듭제곱과 지수 값으로 평가됩니다 . 즉,"× 10n
두 실수의m
합 에 대해n
" " 을 사용하여mEn
표현되는 값입니다m × 10n
.3e11
와 동일합니다300000000000
.
답변3
펄 솔루션:
lsblk -bio KNAME,TYPE,SIZE,MODEL | perl -ane 'print if $F[2] > 3e11'
300_000_000_000을 값으로 사용할 수도 있습니다.
-n
인쇄하지 않고 입력 내용을 한 줄씩 읽습니다.-a
공백의 입력을 @F 배열로 분할