On 2020-07-01 11:07, Tec. Comunicaciones Transgaviota Centro wrote:
Tengo un fichero de texto que tiene xyz módulos como este que pego a
continuación
Todos los módulos tienen en común que empiezan con APP_LoTW_OWNCALL y terminan con
<eor>
Pero se necesita que esos modulos sean exportados a otro fichero de texto en una sola
línea los siguientes datos
SM7IUN 30M 10.13833 FT8 20200628
040615
Que son los valores de algunas de las filas, pues esos datos se necesitan luego para
pegarlos en un Excel.
Cualquier ayuda desde ya se agradece.
<APP_LoTW_OWNCALL:4>T46W
<STATION_CALLSIGN:4>T46W
<CALL:6>SM7IUN
<BAND:3>30M
<FREQ:8>10.13833
<MODE:3>FT8
<APP_LoTW_MODEGROUP:4>DATA
<QSO_DATE:8>20200628
<APP_LoTW_RXQSO:19>2020-06-30 12:42:29 // QSO record inserted/modified at LoTW
<TIME_ON:6>040615
<APP_LoTW_QSO_TIMESTAMP:20>2020-06-28T04:06:15Z // QSO Date & Time; ISO-8601
<QSL_RCVD:1>Y
<QSLRDATE:8>20200630
<APP_LoTW_RXQSL:19>2020-06-30 12:42:29 // QSL record matched/modified at LoTW
<eor>
<APP_LoTW_OWNCALL:4>T46W
<STATION_CALLSIGN:4>T46W
<CALL:6>KC9GHA
<BAND:3>30M
<FREQ:8>10.13833
<MODE:3>FT8
<APP_LoTW_MODEGROUP:4>DATA
<QSO_DATE:8>20200628
<APP_LoTW_RXQSO:19>2020-06-30 12:42:29 // QSO record inserted/modified at LoTW
<TIME_ON:6>040345
<APP_LoTW_QSO_TIMESTAMP:20>2020-06-28T04:03:45Z // QSO Date & Time; ISO-8601
<QSL_RCVD:1>Y
<QSLRDATE:8>20200630
<APP_LoTW_RXQSL:19>2020-06-30 12:42:29 // QSL record matched/modified at LoTW
<eor>
Saludos Cordiales,
M.Sc. Wilfredo Martínez Consuegra
Técnico en Comunicaciones
Transgaviota CENTRO
Cayo Las Brujas, Villa Clara.
Teléfono Trabajo: +53 42 350080 ext 116
Teléfono Celular: +53 53 664 665
www.gaviota-grupo.com [1]
[2] [3]
_______________________________________________
Gutl-l mailing list -- gutl-l(a)listas.jovenclub.cu
To unsubscribe send an email to gutl-l-leave(a)listas.jovenclub.cu
Supon que pones todo eso en un archivo llamado sample, entoces puedes
correr algo como
ulises@ulises-kub:/tmp$ paste -s sample | sed -r 's/<eor>/\r\n/' | awk
'{ print $3" "$4" "$5" "$6" "$8"
"$17 }' | sed
's/<CALL:6>//;s/<BAND:3>//;s/<FREQ:8>//;s/<MODE:3>//;s/<QSO_DATE:8>//;s/<TIME_ON:6>//'
Para obtener el resultado....
SM7IUN 30M 10.13833 FT8 20200628 040615
KC9GHA 30M 10.13833 FT8 20200628 040345
Se que el ultimo sed es una puercada, se que hay una forma de decirle a
sed que en lugar de abarcar lo mas que pueda con una regex solo abarque
lo menos posible, pero ahora luego de buscar un poco no he encontrado la
opcion, pero yo se que existe pues la use anhos atras, si la encuentras
toda esa linea se puede simplificar a algo como
paste -s sample | sed -r 's/<eor>/\r\n/' | awk '{ print $3"
"$4" "$5"
"$6" "$8" "$17 }' | sed -r 's/<.*>//N'
Donde solo cambiarias la "N" final por la letra que toca, pues creo que
era algo que se ponia al final, pero no estoy seguro, de momento puedes
usar el seboruco ese para hacer el trabajo sucio de una forma un poco
sucia
Como ya te dije el archivo sample tiene los datos que diste
ulises@ulises-kub:/tmp$ cat sample
<APP_LoTW_OWNCALL:4>T46W
<STATION_CALLSIGN:4>T46W
<CALL:6>SM7IUN
<BAND:3>30M
<FREQ:8>10.13833
<MODE:3>FT8
<APP_LoTW_MODEGROUP:4>DATA
<QSO_DATE:8>20200628
<APP_LoTW_RXQSO:19>2020-06-30 12:42:29 // QSO record inserted/modified
at LoTW
<TIME_ON:6>040615
(...)
Suerte
--
Salu2, Ulinx
"En un problema con n ecuaciones
siempre habrá al menos n+1 incógnitas"
Linux user 366775
Quieres saber de Cuba o visitar Cuba, revisa mi canal Youtube (en
español)
http://bit.ly/Alocubano
Links:
------
[1]
http://webmail.ulinxonline.net/./#NOP
[2]
https://www.facebook.com/TransGaviotaCuba/?ref=ts&fref=ts
[3]
https://twitter.com/transgaviota