Como pesquisar texto armazenado em uma variável?

1
#!/bin/bash
num=$(gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings | grep -oE '[0-9]+'|sort -rn|head -n 1)
key=$(gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings)
newnum=$(grep -oE '[0-9]+' $key |sort -rn|head -n 1)
echo $newnum

grep usa o $key como nome do arquivo, mas eu quero pesquisar o texto armazenado na variável $text .

    
por alhelal 12.03.2018 / 05:34

1 resposta

4

Você pode usar herestring <<< para passar a string para grep:

newnum=$(grep -oE '[0-9]+' <<< "$key" | sort -rn | head -n 1)

Isso seria mais eficiente do que echo "$key" | grep , o que criaria um processo extra.

Lembre-se de colocar suas variáveis entre aspas duplas para evitar divisão de palavras e globbing. Veja isto também.

    
por 12.03.2018 / 06:13