Извлечь строку между последним вхождением символа и фиксированным выражением

Немного поздно, но если у вас есть root-доступ, вы можете сделать следующее напрямую:

Войдите в свой mysql как root,

$ mysql -u root -p

Показать базы данных ;

mysql>SHOW DATABASES;

Выберите базу данных mysql, в которой находится информация о всех привилегиях.

mysql>USE mysql;

Показать таблицы.

mysql>SHOW TABLES;

Таблица о привилегиях для вашего случая это «db», поэтому давайте посмотрим, какие у него есть столбцы:

mysql>DESC db;

Чтобы перечислить права пользователей, введите следующую команду, например:

mysql>SELECT user, host, db, Select_priv, Insert_priv, Update_priv, Delete_priv FROM db ORDER BY user, db;

Если вы не можете найти этого пользователя или если вы видите, что у этого пользователя есть «N» в столбце Select_priv, вам необходимо либо ВСТАВИТЬ, либо ОБНОВИТЬ соответственно:

INSERT:

INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv) VALUES ('localhost','DBname','UserName','Y' ,'N','N','N');

UPDATE:

UPDATE db SET Select_priv = 'Y' WHERE User = 'UserName' AND Db = 'DBname' AND Host='localhost';

Наконец, введите следующую команду:

mysql>FLUSH PRIVILEGES;

Ciao.

1
задан Felipe Alvarenga 20 March 2019 в 11:45
поделиться

1 ответ

С помощью base R мы получаем basename и используем sub для захвата слова перед ., за которым следуют символы, которые не являются . до конца ($) строки и заменить на обратную ссылку (\\1) захваченной группы

sub(".*_(\\w+)\\.[^.]+$", "\\1", basename(mystring))
#[1] "cat"    "master"

Если это фиксированный символ

sub(".*_(\\w+)\\.rds", "\\1", basename(mystring))

Или используя gsub

[ 112]
0
ответ дан akrun 20 March 2019 в 11:45
поделиться
Другие вопросы по тегам:

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