![텍스트가 변수에 저장될 때 "]"를 새 문자열로 바꾸려면 어떻게 해야 합니까? [복사]](https://linux55.com/image/129343/%ED%85%8D%EC%8A%A4%ED%8A%B8%EA%B0%80%20%EB%B3%80%EC%88%98%EC%97%90%20%EC%A0%80%EC%9E%A5%EB%90%A0%20%EB%95%8C%20%22%5D%22%EB%A5%BC%20%EC%83%88%20%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C%20%EB%B0%94%EA%BE%B8%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
내 MWE가 여기 있어요
#!/bin/bash
num=$(gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings | grep -oE '[0-9]+'|sort -rn|head -n 1)
num=$((num + 1))
echo $num
#gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "[<altered_list>]"
#gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "[$key , $key $num]"
key="/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom"
list=$(gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings)
newnum=$(echo "${list}" | grep -oE '[0-9]+' |sort -rn|head -n 1)
echo $newnum
sed -e "/]/${key}${newnum}/" ${list}
#gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "[$key , $key $num]"
echo $key
이 뜻인 것 같아요 sed -e "/]/${key}${newnum}/" ${list}
-
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/']
난 갖길 원해
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/','/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/']
custom3
입력에 추가 콘텐츠를 추가합니다.
답변1
정규 표현식의 []]
표현 에 사용됩니다 ]
. 대체 문자열이 포함되어 있으므로 @
sed 표현식 구분 기호 로 사용됩니다 ./
sed -e "s@[]]@${key}${newnum}@" ${list}
백슬래시를 사용하여 이스케이프할 수도 있습니다.
sed -e "s@\]@${key}${newnum}@" ${list}
]
문자열의 끝에 있는 것으로 알려져 있으므로 그것이 무엇인지에 관계없이 마지막 문자를 변경할 수도 있습니다 .
sed -e "s@.\$@${key}${newnum}@" ${list}