
이 명령의 결과를 필터링해야 합니다.
lsblk -rno "name,size,mountpoint,fstype" | grep -v 'sda'
내 컴퓨터에서 위 명령의 결과를 알려드리겠습니다.
sdb 223,6G
sdb1 179,8G /VMs/qemu ext4
sdb2 29,5G [SWAP] swap
sdc 15G ntfs
sdd 7,5G
sdd1 7,5G ext4
나에게 필요한 필터링은 마운트되지 않은 것과 파일 시스템이 남아 있는 것들만 필터링하는 것입니다. 따라서 이상적으로 필터링 후에 남는 것은 다음과 같습니다.
sdc 15G ntfs
sdd1 7,5G ext4
내 목표는 USB 드라이브를 마운트하기 위한 스크립트(dmenu의 rofi를 사용하여 호출할 수 있음)를 갖는 것입니다. 나는 인터넷에서 해결책을 찾았지만 이것의 문제는 모든 드라이브에 파티션이 있다고 가정한다는 것입니다. 보시다시피 저는 먼저 파티션을 나누지 않고 포맷된 외부 드라이브(예: ntfs)를 사용합니다. 그래서 나에게는 이런 변화가 필요하다.
답변1
마운트되지는 않았지만 파일 시스템을 포함하는 파티션 목록이 되도록 요구 사항을 단순화하려면 다음을 사용하여 이를 수행할 수 있습니다.awk
lsblk -rno name,size,mountpoint,fstype | awk 'NF==3 {print $1, $3}'
필터 는 정확히 3개의 공백으로 구분된 필드가 있는 awk
행을 고려하여 lsblk
첫 번째 및 세 번째 필드를 인쇄합니다.
샘플 출력
lsblk -rno name,size,mountpoint,fstype
mmcblk0 29.8G
mmcblk0p1 63M vfat
mmcblk0p2 4G / ext4
lsblk -rno name,size,mountpoint,fstype | awk 'NF==3 {print $1, $3}'
mmcblk0p1 vfat
크기도 원하면 출력 선택기를 생략하세요.
lsblk -rno name,size,mountpoint,fstype | awk 'NF==3'
mmcblk0p1 63M vfat