Заменить шаблоны, которые могут занимать две строки

LXLE, Bodhi Linux, Elementary OS... все очень легкие и, по моему опыту, быстрые на ASUS seaseall нетбук.

-121--56274-

Почему загружается ресурс FTP после перетаскивания ссылки на терминал? (вместо вставки в виде текста, как http-URL)

Ресурс не загружается, а запрашивается его путь и тип. При удалении файла или URL-адреса на Konsole будет предпринята попытка преобразовать его в URL-адрес или путь. Попробуйте, например, удалить файл :///tmp/ URL из Firefox в Konsole, вместо этого он будет отображаться как /tmp/. Другая причина, по которой этот вызов состояния необходим, состоит в том, чтобы проверить, является ли он каталогом или нет (поэтому можно удалить каталог и выбрать Change Directory To ).

Для этого обнаружения состояния Konsole зависит от различных протоколов, обеспечивающих интерфейс KIO . Теперь обычно необходимо получить меню с опциями Копировать здесь , Переместить сюда , Ссылка здесь и Вставить местоположение . Однако по какой-то причине (предположительно, ошибка условия гонки?) меню не всегда предлагается и сразу запускается загрузка (соответствующий код находится в TerminalDisplay:: dropEvent ).

Это наблюдалось в Konsole 15.08.0 (Qt 5) на Arch Linux кстати.

Где можно найти загруженный файл? (Я хочу удалить его)

Есть большая вероятность, что файл на самом деле не был сохранен и поэтому вам не нужно его удалять. Если вы думаете, что это все еще где-то, посмотрите в /proc/$ pid/fd/ дескрипторы файлов вашего процесса (или вызовите lsof ). (Пробовали ли вы также /var/tmp/ помимо /tmp и ~ ?)

В следующей версии 15 .xx доступна новая возможность отключить эту функцию перетаскивания «n» и просто вставить все в виде текста ( ошибка 304290 ). Для этого откройте настройки профиля, вкладку Мышь , опцию Отключить меню перетаскивания для URL-адресов и файлов .

-121--146904-

У меня была та же проблема с гораздо более поздней версией Fedora (F20), и версия gnome-keyring не была виновной.

Вот как я решил его:

  1. Щелкните правой кнопкой мыши на nm-applet.
  2. Нажмите кнопку «Редактировать соединения».
  3. Выберите соединение, с которым возникли проблемы, а затем «отредактируйте».
  4. Перейдите на вкладку «Wi-Fi Security» и введите пароль WiFi.
  5. Сохранить и выйти.

1
24.02.2018, 15:28
2 ответа

На самом деле это не имеет ничего общего с приоритетом (, который обычно относится к операторам ), а с порядком, в котором выдаются команды.


Взгляните на первый пример в вопросе:

N
s/System\nAdministrator/Desktop\nUser/
s/System Administrator/Desktop User/

Это будет читать строки попарно и применять к ним две замены. Если вторая строка в паре заканчивается наSystemAdministratorна следующей, третьей, строке ), то он не сможет это обнаружить. Это означает, что строка, расположенная между нечетной и четной строками, не будет заменена .

Взглянем на второй пример в вопросе (с исправленной орфографией):

s/System Administrator/Desktop User/
N
s/System\nAdministrator/Desktop\nUser/

Это изменит строку в текущей строке, прочитает следующую строку и изменит строку с новой строкой в ​​середине. Это не изменит нечетные строки с полной копией строки(или нечетные строки только с System).


Использование GNUsed:

:top
N
$s/System\(.\)Administrator/Desktop\1User/g
b top

Этот скрипт зацикливается и считывает все строки файла в пространство шаблонов. Как только он достигает последней строки ввода, он выполняет глобальную замену, допуская, что любой символ между двумя словами (также может использовать\([ \n]\))вместо\(.\)).

Результатом будет

The first meeting of the Linux Desktop
User's group will be held on Tuesday.
Another line
And here we have: Desktop User's Group as well.
1.Desktop User's group.
2.Desktop Users Group.
3.Desktop Users Group.
The first meeting of the Linux Desktop
User's group will be held on Tuesday.
Desktop Users Group.
2
27.01.2020, 23:32

Al buscar patrones que pueden abarcar dos líneas, Nse usa junto con Py D-, también conocido como a N;P;D cycle, para tener siempre dos líneas en el espacio del patrón 1:

sed '$!N
s/System\nAdministrator/Desktop\nUser/
s/System Administrator/Desktop User/g
P
D' <infile

Tenga en cuenta que s/System\nAdministrator/Desktop\nUser/es sintaxis gnu sed. Portably lo harías

s/System\nAdministrator/Desktop\
User/

1 :comienza con las líneas 1 -2, después de la P;D procesa las líneas 2 -3, luego las líneas 3 -4 y así sucesivamente...

0
27.01.2020, 23:32

Теги

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