Parse arquivo exportado do Google agenda

1. Parse arquivo exportado do Google agenda

Berghetti
berghetti

(usa Debian)

Enviado em 21/08/2020 - 10:50h

Ola caros,
precisei filtrar somente os links de reunião meet de um arquivo exportado do Google agenda,
consegui cumprir a tarefa, mas para isso criei um monstro srs.

gostaria de dividir com vocês o mostro e talvez receber alguma sugestão de como melhorar isso.

esse é o arquivo para extrair a informação, coloquei em base64 para não perder os '\r'

QkVHSU46VkVWRU5UDQpEVFNUQVJUOjIwMjAwODIzVDE4MDAwMFoNCkRURU5EOjIwMjAwODIzVDE4
MzAwMFoNCkRUU1RBTVA6MjAyMDA4MjBUMTkwNzEwWg0KVUlEOjF2ZTVzZDVpYm1tc2w1OWlhc2Rm
ajFsbzIzc29oQGdvb2dsZS5jb20NCkNSRUFURUQ6MjAyMDA4MjBUMTkwNjU3Wg0KREVTQ1JJUFRJ
T046LTo6fjp+Ojp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+On46
fjp+On46fjp+DQogOn46fjp+On46fjp+On46fjo6fjp+OjotXG5QbGVhc2UgZG8gbm90IGVkaXQg
dGhpcyBzZWN0aW9uIG9mIHRoZSBkZXNjcmlwdGlvDQogbi5cblxuVGhpcyBldmVudCBoYXMgYSB2
aWRlbyBjYWxsLlxuSm9pbjogaHR0cHM6Ly9tZWV0Lmdvb2dsZS5jb20vYWFhLWJiYmItDQogY2Nj
XG4oVVMpICsxIDM0Ny00NTYtMDAwMCBQSU46IDc4OTY1NDEyMyNcbi06On46fjo6fjp+On46fjp+
On46fjp+On46fjp+On46DQogfjp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+
On46fjp+On46On46fjo6LQ0KTEFTVC1NT0RJRklFRDoyMDIwMDgyMFQxOTA2NTdaDQpMT0NBVElP
TjoNClNFUVVFTkNFOjANClNUQVRVUzpDT05GSVJNRUQNClNVTU1BUlk6DQpUUkFOU1A6T1BBUVVF
DQpFTkQ6VkVWRU5UDQpCRUdJTjpWRVZFTlQNCkRUU1RBUlQ6MjAyMDA4MjNUMTgzMDAwWg0KRFRF
TkQ6MjAyMDA4MjNUMTkwMDAwWg0KRFRTVEFNUDoyMDIwMDgyMFQxOTA3MTBaDQpVSUQ6MWk0aW4x
MHNyb2E4MmVuYmhqOGo5bTAwcmVnQGdvb2dsZS5jb20NCkNSRUFURUQ6MjAyMDA4MjBUMTkwNzAx
Wg0KREVTQ1JJUFRJT046LTo6fjp+Ojp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+On46
fjp+On46fjp+On46fjp+On46fjp+DQogOn46fjp+On46fjp+On46fjo6fjp+OjotXG5QbGVhc2Ug
ZG8gbm90IGVkaXQgdGhpcyBzZWN0aW9uIG9mIHRoZSBkZXNjcmlwdGlvDQogbi5cblxuVGhpcyBl
dmVudCBoYXMgYSB2aWRlbyBjYWxsLlxuSm9pbjogaHR0cHM6Ly9tZWV0Lmdvb2dsZS5jb20vZGRk
LWVlZWUtDQogZmZmXG4oVVMpICsxIDYxMi00NTYtMDAwMCBQSU46IDc4OTY1NDEyNTMjXG4tOjp+
On46On46fjp+On46fjp+On46fjp+On46fjp+Og0KIH46fjp+On46fjp+On46fjp+On46fjp+On46
fjp+On46fjp+On46fjp+On46fjp+Ojp+On46Oi0NCkxBU1QtTU9ESUZJRUQ6MjAyMDA4MjBUMTkw
NzAxWg0KTE9DQVRJT046DQpTRVFVRU5DRTowDQpTVEFUVVM6Q09ORklSTUVEDQpTVU1NQVJZOg0K
VFJBTlNQOk9QQVFVRQ0KRU5EOlZFVkVOVA0K



esse é o mostro
grep -A 2 "meet" $1 | sed -e 's/~://g' | sed -e 's/ //g' | tr '\r' 'A' | tr '\n' 'B' | tr -d 'AB' | sed -e 's/\\n/\n/g' | grep "meet" | sed -e 's/Join://g' 



  


2. Re: Parse arquivo exportado do Google agenda

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 21/08/2020 - 23:33h

berghetti escreveu:

Ola caros,
precisei filtrar somente os links de reunião meet de um arquivo exportado do Google agenda,
consegui cumprir a tarefa, mas para isso criei um monstro srs.

gostaria de dividir com vocês o mostro e talvez receber alguma sugestão de como melhorar isso.

esse é o arquivo para extrair a informação, coloquei em base64 para não perder os '\r'

QkVHSU46VkVWRU5UDQpEVFNUQVJUOjIwMjAwODIzVDE4MDAwMFoNCkRURU5EOjIwMjAwODIzVDE4
MzAwMFoNCkRUU1RBTVA6MjAyMDA4MjBUMTkwNzEwWg0KVUlEOjF2ZTVzZDVpYm1tc2w1OWlhc2Rm
ajFsbzIzc29oQGdvb2dsZS5jb20NCkNSRUFURUQ6MjAyMDA4MjBUMTkwNjU3Wg0KREVTQ1JJUFRJ
T046LTo6fjp+Ojp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+On46
fjp+On46fjp+DQogOn46fjp+On46fjp+On46fjo6fjp+OjotXG5QbGVhc2UgZG8gbm90IGVkaXQg
dGhpcyBzZWN0aW9uIG9mIHRoZSBkZXNjcmlwdGlvDQogbi5cblxuVGhpcyBldmVudCBoYXMgYSB2
aWRlbyBjYWxsLlxuSm9pbjogaHR0cHM6Ly9tZWV0Lmdvb2dsZS5jb20vYWFhLWJiYmItDQogY2Nj
XG4oVVMpICsxIDM0Ny00NTYtMDAwMCBQSU46IDc4OTY1NDEyMyNcbi06On46fjo6fjp+On46fjp+
On46fjp+On46fjp+On46DQogfjp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+
On46fjp+On46On46fjo6LQ0KTEFTVC1NT0RJRklFRDoyMDIwMDgyMFQxOTA2NTdaDQpMT0NBVElP
TjoNClNFUVVFTkNFOjANClNUQVRVUzpDT05GSVJNRUQNClNVTU1BUlk6DQpUUkFOU1A6T1BBUVVF
DQpFTkQ6VkVWRU5UDQpCRUdJTjpWRVZFTlQNCkRUU1RBUlQ6MjAyMDA4MjNUMTgzMDAwWg0KRFRF
TkQ6MjAyMDA4MjNUMTkwMDAwWg0KRFRTVEFNUDoyMDIwMDgyMFQxOTA3MTBaDQpVSUQ6MWk0aW4x
MHNyb2E4MmVuYmhqOGo5bTAwcmVnQGdvb2dsZS5jb20NCkNSRUFURUQ6MjAyMDA4MjBUMTkwNzAx
Wg0KREVTQ1JJUFRJT046LTo6fjp+Ojp+On46fjp+On46fjp+On46fjp+On46fjp+On46fjp+On46
fjp+On46fjp+On46fjp+On46fjp+DQogOn46fjp+On46fjp+On46fjo6fjp+OjotXG5QbGVhc2Ug
ZG8gbm90IGVkaXQgdGhpcyBzZWN0aW9uIG9mIHRoZSBkZXNjcmlwdGlvDQogbi5cblxuVGhpcyBl
dmVudCBoYXMgYSB2aWRlbyBjYWxsLlxuSm9pbjogaHR0cHM6Ly9tZWV0Lmdvb2dsZS5jb20vZGRk
LWVlZWUtDQogZmZmXG4oVVMpICsxIDYxMi00NTYtMDAwMCBQSU46IDc4OTY1NDEyNTMjXG4tOjp+
On46On46fjp+On46fjp+On46fjp+On46fjp+Og0KIH46fjp+On46fjp+On46fjp+On46fjp+On46
fjp+On46fjp+On46fjp+On46fjp+Ojp+On46Oi0NCkxBU1QtTU9ESUZJRUQ6MjAyMDA4MjBUMTkw
NzAxWg0KTE9DQVRJT046DQpTRVFVRU5DRTowDQpTVEFUVVM6Q09ORklSTUVEDQpTVU1NQVJZOg0K
VFJBTlNQOk9QQVFVRQ0KRU5EOlZFVkVOVA0K



esse é o mostro
grep -A 2 "meet" $1 | sed -e 's/~://g' | sed -e 's/ //g' | tr '\r' 'A' | tr '\n' 'B' | tr -d 'AB' | sed -e 's/\\n/\n/g' | grep "meet" | sed -e 's/Join://g' 

Boa noite.
Gere o arquivo "base64" com o máximo de colunas,
Exemplo:
base64 -w $COLUMNS,
Depois:
echo -e "$(base64 -d Arq_Base64.txt)"|awk '/Join:/ {print $2}'



______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


3. Re: Parse arquivo exportado do Google agenda

Berghetti
berghetti

(usa Debian)

Enviado em 22/08/2020 - 10:53h

Bom dia Marcelo,
obrigado a ajuda,
mas não funcionou,
o final do link ficou faltando

ex:
link é assim: "https://meet.google.com/ddd-eeee-fff"
ficou assim: "https://meet.google.com/ddd-eeee-"

no arquivo depois de eee- tem os bytes "0d 0a 20" que estão atrapalhando srsr


4. Re: Parse arquivo exportado do Google agenda

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 22/08/2020 - 14:15h

Como citei, essa quebra de linha, é decorrente do numero de colunas na geração do base64....
Agora vai.....
echo -e "$(base64 -d base64.txt)"|sed 's/^M//;s/^ //'|sed -n '/Join.*$/{N;s/\n//p}'
Join: https://meet.google.com/aaa-bbbb-ccc
Join: https://meet.google.com/ddd-eeee-fff
Depois de "decodificar o base64", notei que o arquivo esta no formato "DOS". "with CRLF, LF line terminators"
Por isso, o comando "sed 's/^M//;'"
echo -e "$(base64 -d base64.txt)" > texto.txt
file texto.txt
texto.txt: ASCII text, with CRLF, LF line terminators

Usei o echo -e, para interpretar os "\n"
O comando:
sed -n '/Join.*$/{N;s/\n//p}'
Junta a linha que tem "Join" com a próxima.
É isso...
Se não der certo, poste o arquivo original.....
Esse base64 só atrapalhou...... Rsrsrsrsrsrsr
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


5. Re: Parse arquivo exportado do Google agenda

Berghetti
berghetti

(usa Debian)

Enviado em 22/08/2020 - 15:43h

Esse base64 só atrapalhou...... Rsrsrsrsrsrsr

coloquei com a ideia justamente de não perder bytes copiando e colando o arquivo aqui.

esses comandos que você passou funcionam quando o arquivo não tem os '\r' no fim da linha,
mas no arquivo original que tem esses bytes no fim da linhas "quase" funcionou rsr
veja como ficou.

$ base64 -d base64 > agenda.txt
$ echo -e "$(cat agenda.txt)" | sed 's/^M//;s/^ //'| sed -n '/Join.*$/{N;s/\n//p}'
cccn: https://meet.google.com/aaa-bbbb-
fffn: https://meet.google.com/ddd-eeee-


veja o resultado do monstrinho que fiz
$ grep -A 2 "meet" agenda.txt | sed -e 's/~://g' | sed -e 's/ //g' | tr '\r' 'A' | tr '\n' 'B' | tr -d 'AB' | sed -e 's/\\n/\n/g' | grep "meet" | sed -e 's/Join://g' 
https://meet.google.com/aaa-bbbb-ccc
https://meet.google.com/ddd-eeee-fff


Se não der certo, poste o arquivo original.....

coloquei o arquivo em anexo, só verificar se ele continua com CRLF.

edit: o anexo parece não estar indo, segue o arquivo, porem copiar e colocar vai perder a codificação CRLF (pelo menos aqui perde)

BEGIN:VEVENT
DTSTART:20200823T180000Z
DTEND:20200823T183000Z
DTSTAMP:20200820T190710Z
UID:[email protected]
CREATED:20200820T190657Z
DESCRIPTION:-::~:~::~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~
:~:~:~:~:~:~:~:~::~:~::-\nPlease do not edit this section of the descriptio
n.\n\nThis event has a video call.\nJoin: https://meet.google.com/aaa-bbbb-
ccc\n(US) +1 347-456-0000 PIN: 789654123#\n-::~:~::~:~:~:~:~:~:~:~:~:~:~:~:
~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~::~:~::-
LAST-MODIFIED:20200820T190657Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART:20200823T183000Z
DTEND:20200823T190000Z
DTSTAMP:20200820T190710Z
UID:1i4in10sroa82enb[email protected]
CREATED:20200820T190701Z
DESCRIPTION:-::~:~::~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~
:~:~:~:~:~:~:~:~::~:~::-\nPlease do not edit this section of the descriptio
n.\n\nThis event has a video call.\nJoin: https://meet.google.com/ddd-eeee-
fff\n(US) +1 612-456-0000 PIN: 7896541253#\n-::~:~::~:~:~:~:~:~:~:~:~:~:~:~:
~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~::~:~::-
LAST-MODIFIED:20200820T190701Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:
TRANSP:OPAQUE
END:VEVENT








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts