내 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}