Alt +. для последнего аргумента не работает

Вот так:

$ perl -lne '/^(.*?->\s*\[)(.*)(\].*)/; $k{$_}++ for split(/,/,$2); 
             print "$1", join ",", keys(%k), "$3"' file
"nirmal" -> ["web:webapi","web:identity_gateway","ds:config_store","app:ticket","ds:user_store","web:loginsvc","ds:cts        _store","web:loginui","web:am","ds:cts_store","app:loginui","app:am","app:identity_gateway","app:webapi","web:ticket","app:loginsvc",];
"mbl" -> ["s2:acctcomm","cws:mesg","txn:olsvc","app:loginsvc","web:b2b","app:loginui","app:optchart","app:phxcfgsvr","cws3:risk","s2core:billpay","s2:detsvc","app:spring","app:phxdshbrd","ds:user_store","web:ticket","batch:admin","at:eqsroll","s2:asset","s2core:mblsvc","txn:acct","app:am","s2:espsvc","development:mobile","web:fidoproxy","app:webapi","txn:rtmm","s2:mblsvc","app:redis","cws:user","cws3:acctaggtr","ds:cts_store","txn:detsvc","web:mobile","app:webapiagg","txb:b2bsvc","fhs:oqs","cws3:wsproxy","web:landing","web:olxml","fhs:eqs","web:prospect","s2core:ibsvc","cws:risk","web:phx","s2:ibsvc","s2core:espsvc","txn:services","web:ibxml","web:tablet","at:admin","web:identity_gateway","web:spring","web:phxdshbrd","web:phxcfgsvr","s2core:snapquotes","app:sentinel","s2core:asset","ets:ord","cws3:rtmm","web:loginui","txn:wtools","web:loginsvc","s2:snapquotes","app:fidoproxy","web:etsecxml","s2:aarcomm","web:am","web:wtxml","app:noknok","ds:config_store","app:ticket","txn:ibank2","s2core:services","s2:billpay","web:detsvc","app:landing","cws3:content","web:aempros_mpublish","s2core:aarcomm","app:mobile","web:webapiagg","s2core:detsvc","web:webapi","cws3:rtao","app:identity_gateway","web:xmlrtmm","web:xmlacct","ds:cts        _store","s2:services","at:oqsroll","app:vas","app:phx","cws:ctnt",];

Пояснение

  • perl -lne:запустить сценарий, заданный -e, в каждой строке входного файла(-n). -lудаляет завершающие символы новой строки из ввода, а также добавляет новую строку к каждому вызову print.
  • /^(.*?->\s*\[)(.*)(\].*)/:соответствуют трем наборам данных в каждой строке ввода. Первый, .*?->\s*\[, — это все от начала файла до первого ->, затем 0 или более пробельных символов и затем \[. Поскольку шаблон находится в круглых скобках, мы можем ссылаться на него как $1. Далее сопоставьте все до последнего](.*)). Это будет $2. И, наконец, сопоставьте оставшуюся часть строки (\].*), это будет $3.
  • $k{$_}++ for split(/,/,$2);:Это трюк для удаления дубликатов. преобразовать$2(дублированные данные )в массив, разделив его на ,, а затем сделать каждый элемент этого массива ключом в хеше %k. Поскольку хэш-ключи всегда уникальны, это приведет к дедупликации данных в $2.
  • print "$1", join ",", keys(%k), "$3"':теперь мы печатаем оригинал $1, начало строки, затем ключи хэша %k, соединенные запятой, и, наконец, остаток строки, $3. Это не сохранит исходный порядок ввода, но приведет к дедупликации данных.
0
01.11.2020, 09:18
1 ответ

Может быть, я и сам себе ответил:

/usr/src/dwm/config.h

Из

#define MODKEY Mod1Mask

-

#define MODKEY Mod4Mask

, затем

make clean install

и перезагрузить dwm.

Теперь я "вынужден" использовать клавишу Win вместо Alt для Meta(Mod1 )в dwm, но в терминал (s )теперь Alt ведет себя так, как ожидалось.

0
18.03.2021, 22:53

Теги

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