Использование Sed для добавления счетчика к ключевому слову

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

2
02.07.2019, 14:23
2 ответа

Если вы не привязаны к 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
5
27.01.2020, 21:50

Если у вас есть 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
7
27.01.2020, 21:50

Теги

Похожие вопросы