특정문자열뒤의 내용을 다른 내용으로 치환하고 싶습니다.

xoduddk123의 이미지

좀전에 blkid를 통해 UUID를 출력하는것을 물어봣었는데

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

이번에는 특정파일에 있는 UUID를 좀전에 뽑아낸 UUID로 치환을 하고싶습니다.

[aaa.conf]
...
...
abcdefg root=UUID=caddaa7f-2936-4153-96b9-dd07adbde934 hijklmnop
...
...

blkid에서 뽑아낸 UUID가 만약 7928270d-438d-486b-bc40-8203b79e1227 라면 aaa.conf의 내용을

[aaa.conf]
...
...
abcdefg root=UUID=7928270d-438d-486b-bc40-8203b79e1227 hijklmnop
...
...

로 치환시키고 싶습니다.

sed 명령어를 사용하면될거같은데 sed명령어를 어떻게 사용해야할지 잘 모르겠습니다.

방법이 있을까요..?

blkid로 뽑아낸 UUID는 test.txt라는 파일에 저장되어져 있습니다.

---------
쉘스크립트로 uuid를 뽑아서 변수로 사용까지는 방금 해봤습니다

blkid /dev/mmcblk0p2 -o value -s UUID > uuid.txt
export UUID=$(cat uuid.txt)
echo $UUID

nomail의 이미지

스크립트로 실행하실려면 ymir님 답글처럼 eval로 처리하는게 더 깔끔합니다.

#!/usr/bin/env bash
 
set +o posix
 
eval $(grep -Po 'UUID=.*?\s' <(blkid /dev/mmcblk0p2))
sed -i "/^\[aaa.conf\]/,/^\[/s#\(UUID=\)[^ ]*#\1$UUID#" aaa.conf