의 출력에서 선택한 열을 인쇄하는 코드가 있습니다 lsblk
. 그러나 결과에 공백이 있으면 읽기가 어렵습니다. 공백을 유지하면서 이를 수행할 수 있는 방법이 있습니까?
echo "`sudo lsblk | awk -F ' ' '{print $1 " " $4 " " $6 " " $7}'`"
산출:
NAME SIZE TYPE MOUNTPOINT
sda 238.5G disk
├─sda5 68.6G part /
├─sda6 7.8G part [SWAP]
└─sda8 1000M part
답변1
printf
한 가지 방법은 열 너비를 직접 사용 하고 할당하는 것입니다.
lsblk | awk '{printf "%-8s %8s %5s %s\n",$1,$4,$6,$7}'
printf
필요에 맞게 보고서의 열 너비를 자유롭게 조정할 수 있습니다 .
예:
$ lsblk | awk '{printf "%-8s %8s %5s %s\n",$1,$4,$6,$7}'
NAME SIZE TYPE MOUNTPOINT
sda 500.0G disk
├─sda1 100M part /boot
├─sda2 28.6G part /
옆에
질문에 표시된 형식을 고려하세요.
echo "`cmd1 | cmd2`"
다음 형식으로:
cmd1 | cmd2
두 가지 형태가 유사하지만 두 형태의 미묘한 차이점을 심도 있게 논의합니다.여기. 일반적으로 후자의 형태는 놀라움을 덜 제공합니다.
답변2
lsblk
여기에서 먼저 출력하려는 열을 알 수 있습니다 .
$ lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
NAME SIZE TYPE MOUNTPOINT
sda 465.8G disk
├─sda1 1G part
└─sda2 464.8G part
├─VG_XY-debian64 40G lvm /
├─VG_XY-swap 16G lvm [SWAP]
└─VG_XY-home 300G lvm /home
sr0 1024M rom
답변3
@ John1024의 답변과 @steeldriver의 의견은 완벽한 솔루션입니다.
또는 이전에 얻은 출력을 수정하세요.
...your_command | column -t