Руководство по допиливанию для новичка- от новичка

Автор el guahiro, июля 26, 2015, 17:02:01

« предыдущая - следующая »

el guahiro

Специально для читателей данного форума. Наконец-то дошли руки. Доработанная (и серьёзно протестированная) утилита рекурсивного поиска по содержанию всех типов офисных файлов, включая электронные таблицы.
Называется ищи_pro3
Содержание:
#!/bin/bash
# Created by el guahuro, elguahiro@gmail.com.
#This script performs a recursive search for the contents of files in all popular office formats.

echo -e "\n
Поиск слова во всех файлах этой папки, введите запрос \n
Результаты поиска по введенному далее запросу \n"
echo -e "\033[1m\033[38;5;11m"Чтобы открыть найденный файл, выдели название этого файла и закрой терминал"\033[0m"


echo -e "\033[37;1;41m  "СЛОВО:" \033[0m"
read response

find . -iname "*.doc" |
while read i ; do catdoc "$i" |
rg -i "$response" && echo -e "\033[37;1;41m  "$(realpath "$i")"\033[0m" ; done

find . -iname "*.docx" |
while read i ; do docx2txt < "$i" |
rg -i "$response" && echo -e "\033[37;1;41m  "$(realpath "$i")"\033[0m" ; done

find . -iname "*.xls" |
while read i ; do xls2csv "$i" |
rg -i "$response" && echo -e "\033[37;1;41m  "$(realpath "$i")"\033[0m" ; done

find . -iname "*.xlsx" |
while read i ; do ssconvert "$i" /tmp/"$i".csv >/dev/null 2>&1 ; cat /tmp/"$i".csv |
rg -i "$response" && echo -e "\033[37;1;41m  "$(realpath "$i")"\033[0m" ; rm  /tmp/"$i".csv ; done

find . -iname "*.pdf" |
while read i ; do pdftotext -q -layout "$i" - | less |
rg -i "$response" && echo -e "\033[37;1;41m  "$(realpath "$i")"\033[0m" ; done

find . -iname "*.odt" |
while read i ; do odt2txt "$i" |
rg -i "$response" && echo -e "\033[37;1;41m  "$(realpath "$i")"\033[0m" ; done

find . -iname "*.odp" |
while read i ; do odt2txt "$i" |
rg -i "$response" && echo -e "\033[37;1;41m  "$(realpath "$i")"\033[0m" ; done

find . -iname "*.ods" |
while read i ; do odt2txt "$i" |
rg -i "$response" && echo -e "\033[37;1;41m  "$(realpath "$i")"\033[0m" ; done

find . -iname "*.rtf" |
while read i ; do catdoc "$i" |
rg -i "$response" && echo -e "\033[37;1;41m  "$(realpath "$i")"\033[0m" ; done


rg -i "$response"

echo -e "\033[1m\033[38;5;11m"Время поиска $SECONDS секунд"\033[0m"

Как использовать:
Делаем ПКМ Thunar под названием : ИЩИ: поиск в офисных файлах по содержанию
Команда:
xfce4-terminal -H -e  "bash -c  ищи_pro3" ;  thunar "$(xclip -sel clip -o)"Условие появления: Каталоги.
Как работает:
1. В каталоге жмём ПКМ "ИЩИ"
2. Открывается окно терминала с подсказкой
3. В результатах появляется строка (строки) с искомым словом и ниже - путь к файлу, в котором это нашлось.
4. Выбираем нужный файл, выделяем путь
5. Закрываем терминал и выбранный файл открывается в редакторе по умолчанию.

Аналогов нет. Точнее они есть, но с периодической индексацией и грузят процессор.
Достоинство утилиты:
- работает без индексации, т.е. не оставляет следов
- можно запускать с Live флешки на любом компе
- можно искать по сети
- грузит процессор только когда ищем
- ищет быстро
- ищет по всем популярным типам офисных файлов, кроме картинок и нераспознанных PDF.

Видео будет, но чуть позднее.

Надеюсь, кому-то пригодится. Искренне ваш, el.
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Приветствую!
Цитата: el guahiro от ноября 21, 2020, 01:13:27Специально для читателей данного форума.

Поскольку я читатель данного форума, то говорю:,,Спасибо!"😈

Есть такая 'штука😈' ripgrep а к тей вот такая 'композиция😈' ripgrep-all которые делают тоже самое.

Попробуйте, либо ваш вариант либо этот (я им пользуюсь по отношению к видеофайлам) могут взаимодополнрять, а может взаимоисключать друг друга...

2020 Nov 21; 03:39 PM 
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

ноября 22, 2020, 12:24:53 #1562 Последнее редактирование: ноября 22, 2020, 12:41:44 от el guahiro
Время однако, не стоит на месте...
Я, когда писал когда-то скрипт "ИЩИ", не нашёл утилиты типа rga.
Действительно, юзабельна. Ищет во всех типах файлов, кроме офисных doc и docx:
adapter: pandoc
pandoc: Cannot read archive from stdin
Надеюсь, авторы программы это исправят.
Несмотря на то, что лицензия на программу вроде-бы открытая, но бинарник rga закрытый и  что-то посмотреть у меня, по крайней мере не получилось. Исправить, соответственно, тоже.
А так да, по PDF и XML ищет нормально.
В файлах *.xlsx ищет, подсвечивает результат, но он подсвечен в полностью вывалившется в выдачу файле *.xlsx, т.е не одна строчка, как в "ИЩИ", а 100+или даже 1000+ строчек.
Установка RGA : качаем архив, распаковываем, бросаем папку с распакованным  архивом в ~/.local/bin/, ссылки на бинарники rga и  rga-preproc бросаем непосредственно в ~/.local/bin/.


Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Приветствую!
Цитата: el guahiro от ноября 22, 2020, 12:24:53Действительно, юзабельна. Ищет во всех типах файлов, кроме офисных doc и docx:

Ну, нормальной программу можно считать когда просто ставится через sudo apt... А до этого мы все участники тестирования😇!

В виртуальном debian'е у меня работает. А в Xubuntu я использовал тот же архив и у меня вот так:
↓↓↓                  /usr/local/bin
ls --block-size=K -l|tr -s ' '|sort -nk5|grep rga
-rwxr-xr-x 1 root root 5344K Sep 15 12:42 rga
-rwxr-xr-x 1 root root 5456K Sep 15 12:42 rga-preproc
↓↓↓                  /usr/local/bin
В общем я ,,без фантазии"😈 ставил выполняя какую-то инструкцию, ну а до ,,бинарников" я вообще не поднимаюсь, крылья могут обгореть😇...

Работает вроде ищет всё... Но выдача какая-то длинная и нужно только подсвеченное (подкрашенное или покрашенное) просматривать там результаты. Я подумал, что наверное как-то с ключами самого ripgrep экспериментировать...

В общем подождать придётся... Если автор не остынет, но его как-то слабо теребят... Хотя тема то сама весьма востребованная.

2020 Nov 22; 07:06 AM
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

ноября 22, 2020, 16:47:23 #1564 Последнее редактирование: ноября 23, 2020, 21:19:21 от el guahiro
В файловом менеджере операционной системы, установленной на моём рабочем ноутбуке Xubuntu 18.04 имеется возможность установки пользовательских иконок папок (директорий), находящихся на рабочем столе. Слышал, что в Xubuntu 20 данный твик распространяется уже на все папки.
Пользовательские иконки на рабочем столе нужны мне для работы, поскольку у меня много объектов, расположенных в 16 регионах нашей необъятной. По каждому объекту строительства ещё дополнительно имеются подразделы, такие как собственность, границы земельного участка, наружные инженерные сети, архитектура и т.п.
Чтобы не запутаться в сложных вопросах для решения, я обычно выкидываю ссылку на папку с актуальным вопросам на рабочий стол и в течение пары дней решаю. Ссылку потом удаляю. А если не решаю, то у меня на рабочем столе болтаются, например, ссылки на несколько папок (вопросов) как по вокзалу Глазов, который мы сдали в ещё 2016 году и служат немым укором моей лени и раздолбайству.
Для тех кто прочитал это длинное и нудное предисловие бонус.
Возможность выполнить команду при изменениях в файловой системе или  в конкретной папке.
#Ability to execute a command, when changes in the file system or in a specific folder
Для этого необходимо сначала установить пакет inotify-tools, в терминале:
sudo apt install inotify-toolsОдин из инструментов этого пакета, inotifywait, позволяет отслеживать изменения в каталоге.
Пишу скрипт под названием wait_n_create_folder-ICON.sh следующего содержания:
#!/bin/bash
while true
 do
   if FN=`inotifywait -e close_write,moved_to --format %f .`
   then
find ./ -type d -exec cp  -n folder.jpg {} \;
find ./ -type d -exec cp  -n .hidden {} \;
   fi
 done
Как мы видим, данный скрипт при изменениях в папке, конкретно при появлении новой директории, забрасывает туда картинку folder.jpg, ответственную за пользовательская отображение папки на рабочем столе и файл .hidden, содержание которого:
folder.jpg Данный файл отвечает за то, чтобы при включение в Thunar опции не показывать скрытые файлы, файл иконки не отображался в файловом менеджере. Соответственно, .hidden является скрытым и тоже не отображается.
Скрипт бросаю в ~/.local/bin/
Потом в автозапуске делаю запись:
Настройки > Сеансы и запуск > вкладка вверху Автозапуск > снизу жмем плюсик Добавить >  в диалоговом окне сверху пишу название команды:
"Автоматические иконки папок служебной переписки"
Снизу пишу команду:
bash -c "cd '/home/user/Служебная переписка' ; wait_n_create_folder-ICON.sh"
Перезагружаюсь. Проверяю: При копирование любой папки в папку "Служебная переписка" и последующим отправлении ярлыка на рабочий стол, иконка папки пользовательская, которая говорит о том что это- папка служебной переписки и её надо в течение ограниченного срока отработать.
----------------
Таким образом можно запускать любую команду в любой папке файловой системы. Команда будет выполняться при изменении в файловой системе. В остальное время команда спит и не нагружает процессор.
Пост написан, основываясь на этой статье на Хабре.

Вышенаписанное пригодится проектным менеджерам, склеротикам типа меня (чтоб не забыть), и системным администраторам.

Надеюсь, было интересно. Искренне ваш, el.
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Да, огранизация управления задачами всякими очень важная тема! Бесконечная, безусловно, при обсуждении😕...

У людей разных по разному развиты ,,памяти" в связи с чем хочу напомнить, что есть ещё возможность делать ,,вечные" директории или файлы:

https://en.wikipedia.org/wiki/Chattr

sudo chattr ±i ❰dir or file❱
Если вдруг развелось много таких файлов то посмотреть вот так можно:
lsattr|grep -e '-i'
У меня просто напоминание простроено по принципу удаления задач через определённое время. По типу если и через полтора месяца не выполнил, значит не выполнишь никогда!😇 Файл задачи удаляется автоматически скриптом при загрузке.

Внести пакетно изменения можно вот так, построив файлы в одну строку:
lsattr|grep -e '-i'|sed 's:^.*\/::'|sed -e ':a;N;$!ba;s:\n: :g'
А время в файле или директории подправляется вот так ❰touch -m -a -t 202?mmDD0000.00❱:

touch -m -a -t 202512310000.00 goal.txt
Короче, эти два момента тоже могут быть применены для каких-то целей систематизации или запоминания...

2020 Nov 22; 12:18 PM
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

Цитата: xub от ноября 22, 2020, 20:18:41Файл задачи удаляется автоматически скриптом
Добрый день(?) или у Вас ночь?... не важно...
До авто-удаления файлов я не додумался. Если есть рабочее решение, можете рассказать по подробнее??
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Приветствую!
Цитата: el guahiro от ноября 22, 2020, 21:38:03До авто-удаления файлов я не додумался.
Полагаю, что этого быть не может, просто я настолько мутно всё изложил😞, что Вам стало не совсем понятно о чём речь...

Перечисляю на чём строится моя система взаимоотношений с данными находящимися у меня на компьютере.

1.) Файловые менеджеры: основной Ranger, вспомогательный Thunar, иногда другие...

2.) Терминал ✚ текстовой файл -- ,,напоминалка" ✚ алиасы (штук 70), основные штук 20 я помню, остальные редкие показывает ,,напоминалка"...

3.) Участвуют 2 менеджера буфера обмена ,,родной" -- Clipman и Diodon, два потому, что в одном синхронизация буфера включена, а в другом отключена, Clipman включен постоянно, Diodon включается, когда для этого возникают задачи...

4.) Используется easystroke (жесты мыши); много клавиатурных комбинаций около полутора сотен (особенность памяти то ли от спорта то ли просто этот вид памяти у меня преобладающий, лица зато плохо помню😇); ну и похабные скрипты собственного изготовления, которые стыдно людям показать😇...



На скрине файловый менеджер ranger, три колонки, управляется клавишами, мышь поддерживается в полном объёме кроме перетаскивания. Там всё понятно, просмотрщик встроенный справа, просматривает видео (как картинку, наверное первый кадр), изображения, текст, pdf и так далее. Всё можно настроить, я настроил djvu.Офисные документы тоже можно настроить на просмотр, но у меня их практически нет, а когда пробовал заметил торможение некоторое и не стал продолжать настраивать.

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

Начинается всё с названия. Названия в основном формируются автоматически путём редактирования соответствующим скриптом по hotkey'ю. Стандартное ,,время жизни" каждого файла 15 дней. Далее в зависимости  от необходимости можно также скриптом и также hotkey'ем изменить время существования файла до полутора месяцев или уменьшить до 5 дней.

Вручную можно сделать файл ,,вечным" и даже ,,неудаляемым", такие у меня отмечены звёздочкой. Есть ещё возможности сделать быстро скрытыми, отменить ,,скрытость" можно также пронумеровать. В общем-то всё это не выходя из файлового менеджера.

Автоматически при включении компьютера из автозапуска запускается скрипт Kop3una.CKpunT (специально переименовал, чтобы видно было хорошо😇)



А собственно в этом скрипте вот такая вот смесь команд.
     1 cp /home/fjf/Desktop/111/tmp_TMP_TMP.txt /home/fjf/Desktop/111/.tmp_TMP_TMP_$(date +%b%d_%I%M_%S_%p).txt
     2 cp /home/fjf/.local/share/Trash/files/TS/TmpTs.txt /home/fjf/Desktop/111/.TMP_$(date +%y%b%d_%H%M_%S).txt
     3 SP=$(atq|sed 's:\t.*::g'|sed 's:$: :'|sed ':a;N;$!ba;s:\n::g');atrm $SP
     4 sleep 5
     5 TI=$(date +%Y%b%d%H%M%S); mkdir -p /tmp/Trash_$TI
     6 cd /home/fjf/.local/share/Trash/files; mv TS /tmp/Trash_$TI
     7 QQX=$(date +%b%d_%H%M_%S);mkdir $QQX;find . -maxdepth 1 -type f -iname "**" -exec mv -t $QQX  {} \;
     8 find . -type f -mmin +1800 -exec bash -c 'mv "$0" "`echo \"$0\"| sed -r "s:(.*)/:\1/$(date +%s%4N)_tr_:"`"' {} \;
     9 find . -type f -mmin +1800 -exec mv {} /tmp/Trash_$TI \;
    10 find . -type l -mmin +1800 -exec bash -c 'mv "$0" "`echo \"$0\"| sed -r "s:(.*)/:\1/$(date +%s%4N)_tr_:"`"' {} \;
    11 find . -type l -mmin +1800 -exec mv {} /tmp/Trash_$TI \;
    12 find -L -type l -exec mv {} /tmp/Trash_$TI \;
    13 find . -empty -type f -delete
    14 find . -type d -empty -delete
    15 mkdir TS
    16 cd  /home/fjf/.local/share/Trash/info
    17 find . -type f -mtime +4 -exec bash -c 'mv "$0" "`echo \"$0\"| sed -r "s:(.*)/:\1/$(date +%s%4N)_info_:"`"' {} \;
    18 find . -type f -mtime +4 -exec mv {} /tmp/Trash_$TI \;
    19 cd ~/Public; find . -type f -mmin +600 -exec mv {} /tmp/Trash_$TI \;
    20 mkdir ~/Public/99/7Z/MoreThan3Days;BUF=$(date +%Y%m%d);FUB=$(date -d "$BUF+8 day" +%Y%m%d)
    21 find . -type f -name "*.7z" -newermt $BUF \! -newermt $FUB -exec mv -t ~/Public/99/7Z/MoreThan3Days {} \;
    22 find /home/fjf/Public/99 -empty -type f -delete
    23 find /home/fjf/Public/99 -type d -empty -delete
    24 #cd /home/fjf/Public/99; find . -type f -name "*.do.7z" -mtime +3 -exec mv {} /tmp/Trash_$TI \;
    25 cd ~/Downloads
    26 find . -type f -mmin +1800 -exec bash -c 'mv "$0" "`echo \"$0\"| sed -r "s:(.*)/:\1/$(date +%s%4N)_dw_:"`"' {} \;
    27 find . -type f -mmin +1800 -exec mv {} /tmp/Trash_$TI \;
    28 find . -type d -empty -delete
    29 cd ~/PDF
    30 find . -type f -mmin +1800 -exec bash -c 'mv "$0" "`echo \"$0\"| sed -r "s:(.*)/:\1/$(date +%s%4N)_pf_:"`"' {} \;
    31 find . -type f -mmin +1800 -exec mv {} /tmp/Trash_$TI \;
    32 find . -type d -empty -delete
    33 cd /var/crash;mv -t /tmp *
    34 QE=$(date +%H%M%S);mkdir /tmp/Ss$QE;cd /home/fjf/.cache/sessions;mv -t /tmp/Ss$QE *
    35 cd /home/fjf/Music
    36 find . -type f -mtime +14 -exec bash -c 'mv "$0" "`echo \"$0\"| sed -r "s:(.*)/:\1/$(date +%s%4N)_mu_:"`"' {} \;
    37 find . -type f -mtime +14 -exec mv {} /tmp/Trash_$TI \;
    38 find . -type d -empty -delete
    39 cd /MYCOP
    40 find . -type f -mtime +60 -exec bash -c 'mv "$0" "`echo \"$0\"| sed -r "s:(.*)/:\1/$(date +%s%4N)_MY_:"`"' {} \;
    41 find . -type f -mtime +60 -exec mv {} /tmp/Trash_$TI \;
    42 find . -type d -empty -delete
    43 cd /home/fjf/.local/share/zeitgeist; zeitgeist-daemon --quit;mv  activity.sqlite-shm /tmp;mv  activity.sqlite-wal /tmp
    44 cd /home/fjf/.local/share/zeitgeist/fts.index;mv -t /tmp *
    45 sudo /home/HOME/20Aug20ALIASqqq.CKpunT
    46 TE=$(find  /tmp -type d -iname "Trash*" 2>/dev/null);tree $TE > /home/fjf/Desktop/111/.TREE-$(date +%b%d_%I%M_%p).text
    47 at -f /home/HOME/DeleteCache19Nov23.CKpunT 07:30
    48 sleep 2;zeitgeist-daemon --replace & disown

Здесь может представлять интерес строки №-3 и №-47 это команда ,,at". Вот тут про неё как раз на русском.
http://rus-linux.net/MyLDP/admin/manage-planned-tasks-on-linux-with-the-command-at.html

Ещё вот эти вот места `echo \"$0\"| sed -r "s:(.*)/:\1/$(date +%s%4N)_info_:"` могут показаться странными, это привоение идентификаторов кеаждому файлу, чтобы файлы имеющие одинаковое имя отличались при удалении. Удляются они из разных директорий, а перемещаются в одну.
↓↓↓                  /tmp/2011_Nov22_1441_02╳╳✻/Trash_2020Nov22144054
tree
.
├── 16060740557813_tr_21_0525.tar.gz
├── 16060740557895_tr_111_Nov21_0525_49_AM.tar
└── TS
    └── TmpTs.txt
1 directory, 3 files
↓↓↓                  /tmp/2011_Nov22_1441_02╳╳✻/Trash_2020Nov22144054
Всё остальное это find cp mv т.е полнейшая азбука...

Давно не смотрел на это свежим взглядом, там есть лишнее экранирование. Может что ещё коряво прописано.

Я так скомканно подаю всё по той причине, что если Вы и воспользуетесь чем-то, то будете делать совершенно своё, так человек устроен, потому что люди разные...

Да и ещё вот такая ,,классика" может тут быть востребована sudo visudo:



Примитивно говоря обход sudo.

,,Концептуальненько😈" как бы всё, ну если вдруг что плохо написал, буду пытаться по вашему запросу объяснить лучше...

2020 Nov 22; 08:34 PM
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

Отличная звуковая тема для xUbuntu здесь
Как настраивать системные звуки неоднократно писалось на этом форуме, в т.ч. и в этой теме.

Искренне ваш. El
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

el guahiro

ноября 27, 2020, 01:38:50 #1569 Последнее редактирование: ноября 28, 2020, 16:12:35 от el guahiro
#Чтоб не подохнуть с тоски в самоизоляции.
Прислали по почте файл - выгрузку календаря MS Outlook названием no_name, какое-то оповещение о каком-то совещании, такого примерно содержания:
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN
VERSION:2.0
METHOD:CANCEL
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:Восточная Африка (зима)
BEGIN:STANDARD
DTSTART:16010101T000000
TZOFFSETFROM:+0400
TZOFFSETTO:+0300
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;CN="Иванов Максим";RSVP=TRUE:mailto:ivanovM@o
utlook.com
ATTENDEE;CN="Иванов Михаил Викторович";RSVP=T
RUE:mailto:ххх_ivanovmv@ххх.rzd
ATTENDEE;CN="Иванова Татьяна Михайловна";RSVP=TRUE:mailto:
ххх_ivanovatm@ххх.rzd
ATTENDEE;CN="Иванов Александр Михайлович";RSVP=TRUE:
mailto:ххх_IvanovAM@ххх.rzd
CLASS:PUBLIC
CREATED:20201126T132629Z
DESCRIPTION:When: 27 ноября 2020 г. 10:30-11:00 (UTC+03:00) Найр
оби.\n\nNote: The GMT offset above does not reflect daylight saving tim
e adjustments.\n\n*~*~*~*~*~*~*~*~*~*\n\n\n
DTEND;TZID="Восточная Африка (зима)":20201127T110000
DTSTAMP:20201126T132630Z
DTSTART;TZID="Восточная Африка (зима)":20201127T103000
LAST-MODIFIED:20201126T132629Z
ORGANIZER;CN="Секретарь конторы":mailto:ХХХ_Sekretar@ххх.rzd
PRIORITY:1
RECURRENCE-ID;TZID="Восточная Африка (зима)":20201127T10
3000
SEQUENCE:4
SUMMARY;LANGUAGE=ru:Canceled: Совещание по капитально
му ремонту Объекта 386
TRANSP:TRANSPARENT
UID:040000008200E00074C5B7101A82E00800000000F0A4C2D77FBED601000000000000000
010000000FEE03BC571772B438F94340732A3BDC7
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
rsion 08.00.0681.000">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="ru"><FONT FACE="Calibri"
>When: 27 ноября 2020 г. 10:30-11:00 (UTC+03:00) Найроби.</F
ONT></SPAN></P>\n\n<P DIR=LTR><SPAN LANG="ru"><FONT FACE="Calibri">Note: T
he GMT offset above does not reflect daylight saving time adjustments.</FO
NT></SPAN></P>\n\n<P DIR=LTR><SPAN LANG="ru"><FONT FACE="Calibri">*~*~*~*~
*~*~*~*~*~*</FONT></SPAN></P>\n\n<P DIR=LTR><SPAN LANG="ru"></SPAN></P>\n\
n</BODY>\n</HTML>
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:2
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-ALLOWEXTERNCHECK:TRUE
X-MS-OLK-APPTLASTSEQUENCE:3
X-MS-OLK-APPTSEQTIME:20201119T112534Z
X-MS-OLK-AUTOSTARTCHECK:FALSE
X-MS-OLK-CONFTYPE:0
X-MS-OLK-SENDER;CN="Секретарь конторы":mailto:ххх_Sekretar@ххх
.rzd
END:VEVENT
END:VCALENDAR
Файлы такого формата открываются в xUbuntu в календаре Orage. Но там надо пять раз тыкнуть, чтобы понять, что и как...
Написалось ПКМ Thunar под названием "Время и тема совещания"
Команда, монструозная:
zenity  --width 400 --height 40 --info --title="Время и тема совещания" --text="$(cat %n| ag -w 'DESCRIPTION:When' | sed 's/DESCRIPTION[:]When[:] //' | sed -e 's/Найр//'  ; ag -A1 --nofilename  LANGUAGE |sed -e 's/SUMMARY;LANGUAGE=ru://' | sed -e 's/Canceled/ОТМЕНЯЕТСЯ /g')"Условие появления : Текстовые файлы. Шаблон имени файла: *name*;*NAME*
Иконка: календарь.
В итоге, при нажатии ПКМ на файл вылезает такое сообщение:


Надеюсь, кому-то пригодится.
Всем не болеть. Искренне ваш, el
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions