다음 명령을 사용하여 사용 가능한 디스크 목록과 SSD인지 회전 디스크인지 여부를 반환했습니다(기본적으로 lsblk 출력의 0과 1을 실제 의미로 대체).
lsblk -d -o name,ro | sed "s/RO/\ TYPE/; s/NAME/DISK/; s/0/SSD/g; s/1/ROT/g"
예제 출력:
DISK TYPE
sda SSD
sdb ROT
lsblk
이제 ( ) 에 또 다른 열 "rm"을 추가하고 싶지만 lsblk -d -o name,ro,rm
다른 항목을 나타내기 위해 0과 1도 사용합니다(0=고정 디스크, 1=이동식 디스크).
sed(또는 awk 등)를 사용하여 세 번째 열의 0과 1을 YES와 NO로 바꾸는 방법이 있나요?
답변1
노력하다
lsblk -d -o name,ro,rm |
awk '$2 == 0 { $2 = "SSD" ; } $2 == 1 { $2 = "ROT" ; }
$3 == 0 { $3 = "NO" ; } $3 == 1 { $3 = "YES" ;}
{ print ; }'
- 이는 한 줄일 수 있습니다.
- 때때로 사람들
1
은{ print ; }
. - 연습
RO
으로 왼쪽으로 바꾸세요 .TYPE
답변2
Awk
방법:
lsblk -d -o name,ro,rm \
| awk 'NR == 1{ print "DISK TYPE REMOVABLE"; split("SSD ROT", ro); split("NO YES", rm); next}
{ print $1, ro[$2+1], rm[$3+1] }'
예제 출력:
DISK TYPE REMOVABLE
sda SSD NO
sr0 SSD YES