Для этого можно использовать awk
со следующим вкладышем -, как показано ниже:
awk -F\< '/Name=/ {LGT=length($2);printf("\n%s,",substr($2,6,LGT))};
/Class=/ {LGT=length($2);printf(" %s,",substr($2,6,LGT))};
/School=/ {LGT=length($2);printf(" %s",substr($2,6,LGT))};
END {printf("\n") }' file.txt
Это решение будет печатать записи (, то есть строки в исходном file.txt
файле )в том порядке, в котором они появляются в file.txt
. Я добавил его, потому что это (простой )пример того, как анализировать и манипулировать строками с помощью awk
.
Как и в предыдущих ответах, файл file.txt содержит:
<text>Name= Garen</text>
<text>Class= 9C</text>
<text>School= US</text>
<text>Name= Lulu</text>
<text>Class= 4A</text>
<text>Name= Kata</text>
<text>Class= 10D</text>
<text>School= UK</text>
Выход::
Name= Garen, Class= 9C, School= US
Name= Lulu, Class= 4A
Name= Kata, Class= 10D, School= UK
Вы всегда можете убить процесс, используя kill
, если вы знаете его идентификатор, или используя pkill
, что соответствует команде (и может быть немного более опасным, так как может соответствовать неправильному процессу или более чем один ). я бы выбрал:
# pgrep -lf mysql
(измените mysql
на mariadb
, если запущен последний ), затем проверьте вывод, чтобы получитьPID
(первое поле в строке правильного процесса ), а затем уничтожьте его, используяkill
# kill -TERM <PID>
Вы можете проверить руководство по MySQL , чтобы узнать о других сигналах и о том, как они влияют на сервер MySQL.
С другой стороны, я не уверен, что "хладнокровное" уничтожение сервера базы данных является хорошей идеей, поскольку это может оставить базы данных в странном состоянии. Обязательно используйте -TERM
, чтобы дать ему благополучно умереть.
В первую очередь я бы попытался выяснить, что вызывает зависание, и проверить, действительно ли оно зависает. mysqld_safe
не переходит в фоновый режим, поэтому вы не вернетесь к оболочке после ее запуска, а (, по крайней мере, в моем случае, )не реагирует на ^C
, поэтому поведение вы шоу ожидается. Открытие другого терминала и запуск pgrep
и kill
, как указано выше, прекрасно убил сервер, как показано в его журнале :
2020-12-19 16:08:47 0 [Note] /usr/local/libexec/mariadbd (initiated by: unknown): Normal shutdown
2020-12-19 16:08:47 0 [Note] Event Scheduler: Purging the queue. 0 events
2020-12-19 16:08:47 0 [Note] InnoDB: FTS optimize thread exiting.
2020-12-19 16:08:47 0 [Note] InnoDB: Starting shutdown...
2020-12-19 16:08:47 0 [Note] InnoDB: Dumping buffer pool(s) to /var/mysql/ib_buffer_pool
2020-12-19 16:08:47 0 [Note] InnoDB: Buffer pool(s) dump completed at 201219 16:08:47
2020-12-19 16:08:47 0 [Note] InnoDB: Shutdown completed; log sequence number 126817447; transaction id 271335
2020-12-19 16:08:47 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2020-12-19 16:08:47 0 [Note] /usr/local/libexec/mariadbd: Shutdown complete