Si usar el reproductor VLC es una opción, puede controlar un proceso VLC en ejecución a través de aplicaciones remotas (GUI )o CLI usando llamadas dbus.
Por ejemplo -suponiendo que qdbus está instalado -alterna entre reproducción/pausa en la música que se está reproduciendo actualmente:
$ qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
o ir a la siguiente pieza de la lista de reproducción:
$ qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
Ver todos los comandos disponibles:
$ qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2
Ver también este hilohttps://stackoverflow.com/questions/14256193/linux-control-a-running-vlc-process-through-command-line
Если вы не привязаны к sed
, это очень легко сделать вperl
:
$ perl -pe 'BEGIN{$k=4};s/Keyword "/$&. ++$k. " - "/e' file
Keyword "5 - name"
aaa bbb
ccc ddd
Keyword "6 - another name"
eee fff
ggg
hhh iii
Если у вас есть GNU sed, вы можете использовать нестандартную -команду R
для чтения и вставки индексов из предварительно -сгенерированной последовательности со вторым вызовом sed для переупорядочения результата:
printf '%d\n' {5..100} | sed '/^Keyword/R /dev/stdin' file |
sed '/^Keyword/{N; s/Keyword "\([^"]*\)"\n\(.*\)/Keyword "\2 - \1"/}'
Однако я бы предложил использовать perl
или awk
для этой задачи вместо -, например
awk -v k=5 '/^Keyword/ {sub(/^Keyword \"/, sprintf("Keyword \"%d - ", k++))} 1' file