My MWE is here
#!/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
I want to sed -e "/]/${key}${newnum}/" ${list}
that means from -
['/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/']
I want to get
['/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/']
add a extra custom3
in the input.
sed -e "/\]/${key}${newnum}/" ${list}
resultssed: -e expression #1, char 5: unknown command:
/'`. This error occurs for all 3 expression. – alhelal Mar 12 '18 at 05:44/
in your replacement string that messes up with thesed
expression. See the updated answer. – codeforester Mar 12 '18 at 05:47sed: -e expression #1, char 5: unknown command: @'
– alhelal Mar 12 '18 at 05:49s
was missing in the beginning. Please see the update. – codeforester Mar 12 '18 at 05:51sed
command assumes that$list
is a file while the OP's code seems to want to work on$list
itself (as a string) for whatever reason. – Kusalananda Mar 12 '18 at 06:32sed: -e expression #1, char 76: unterminated
s' command ` – alhelal Mar 12 '18 at 06:36