Perl приходит на помощь:
#!/usr/bin/perl
use warnings;
use strict;
my %replace = ( yahoo => 'www.yahoo.com',
google => 'www.google.com',
'search engine' => 'Search Engine',
'the google' => 'The Google',
'antitrust issues' => 'Antitrust Issues',
);
while (<>) {
s/\\MakeLink\[(.*?)\]\{\}/\\MakeLink[$1]{$replace{$1}}/g;
print;
}
Вы создаете хеш-таблицу замен и используете ее в замене. Вы можете создавать хеш-таблицы в последних версиях bash, но вы не можете использовать их непосредственно в sed, поэтому прямого аналога bash + sed нет.
Похоже, пакет dbus отсутствует.
Проверьте, установлен ли пакет dbus, используя приведенную ниже команду:
$ sudo dpkg -l | grep dbus
ii dbus 1.10.26-0+deb9u1 amd64 simple interprocess messaging system (daemon and utilities)
ii libdbus-1-3:amd64 1.10.26-0+deb9u1 amd64 simple interprocess messaging system (library)
Если установлен пакет dbus , вы получите вывод, как указано выше.
Если выходные данные пустые, то пакет dbus отсутствует. Вы можете установить пакет, используя команду ниже:
$ sudo apt-get install dbus
После установки пакета вы можете проверить статус:
$ sudo systemctl status dbus.service dbus.socket
● dbus.service - D-Bus System Message Bus
Loaded: loaded (/lib/systemd/system/dbus.service; static; vendor preset: enabled)
Active: active (running) since Fri 2018-09-07 23:39:14 EDT; 10s ago
Docs: man:dbus-daemon(1)
Main PID: 451 (dbus-daemon)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/dbus.service
└─451 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
● dbus.socket - D-Bus System Message Bus Socket
Loaded: loaded (/lib/systemd/system/dbus.socket; static; vendor preset: enabled)
Active: active (running) since Fri 2018-09-07 23:39:14 EDT; 10s ago
Listen: /var/run/dbus/system_bus_socket (Stream)