쉘스크립트로 특정명령어중에서 원하는 문자열만 출력할수 있나요???

xoduddk123의 이미지

안녕하세요

blkid로 나오는 출력중에서 특정 디바이스의 UUID를 출력하고 싶습니다.

root@test:~# blkid /dev/mmcblk0p2
/dev/mmcblk0p2: UUID="fb9e37b6-e14a-48f5-8dff-62e7a0b4b50a" TYPE="ext4"

위에 있는것이 blkid로 나오는 내용인데요

저는 /dev/mmcblk0p2의 UUID만을 출력해보고싶습니다.

그런데 어떻게 명령어의 출력중 특정문자열을 출력할수 있는지 앞이 깜깜합니다..

원하는 결과는 fb9e37b6-e14a-48f5-8dff-62e7a0b4b50a 가 나오는 것인데

어떻게 쉘스크립트를 구성해야하나요???

bushi의 이미지

bash 라면,

[bushi@rose imgs]$ blkid /dev/sda2
/dev/sda2: UUID="9516df3f-7f06-4dac-a9cb-c1866098b322" TYPE="ext4" 
[bushi@rose imgs]$ 
[bushi@rose imgs]$ blkid /dev/sda2 | (read x y z; eval $y; echo $UUID)
9516df3f-7f06-4dac-a9cb-c1866098b322
[bushi@rose imgs]$ 
[bushi@rose imgs]$ blkid /dev/sda2 | (IFS=\" read x y z; echo $y)
9516df3f-7f06-4dac-a9cb-c1866098b322
[bushi@rose imgs]$
ymir의 이미지

$ sudo blkid /dev/sda1 | cut -d'"' -f2
b1d265fd-ebfd-4861-a131-525305bb2c58
$ sudo blkid /dev/sda1 | sed 's/.*UUID="\(.*\)" TYPE=.*/\1/'
b1d265fd-ebfd-4861-a131-525305bb2c58
$ eval $(sudo blkid /dev/sda1 | cut -d' ' -f2) && echo $UUID
b1d265fd-ebfd-4861-a131-525305bb2c58

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

nomail의 이미지

uuid만 뽑는 건 blkid 옵션에서 지원합니다.

blkid -o value -s UUID

blkid /dev/mmcblk0p2 -o value -s UUID

xoduddk123의 이미지

많은 분들이 도와주셔서 궁금증이 해결되었습니다

모두 감사드립니다.