wellington_r
(usa Debian)
Enviado em 28/04/2016 - 13:41h
Eu tive uma ideia.
Faça uma cópia do seu arquivo com o nome "entrada.
Depois elimine o espaço da coluna nome de usuário (quando o nome é Local User):
sed 's/Local User/Local_User/g' entrada > temp ; mv temp entrada
Saída:
DETALHE DE ABRIL 2.xls casop-5213 2016-04-27 11:07:51 1 A4 Completed
VALE HOT DOG 1 trimestre Unknown 2016-04-27 10:57:51 2 A4 Completed
VALE HOT DOG SET Unknown 2016-04-27 10:56:10 6 A4 Completed
506DA010B108B07BEEBEE4402.pdf casop-513 2016-04-27 10:51:10 1 A4 Completed
DETALHE DE MAIO.xls casop-5213 2016-04-27 10:17:21 1 A4 Completed
73 Unknown 2016-04-27 09:11:39 1 A4 Completed
73 Unknown 2016-04-27 09:11:35 1 A4 Completed
85 Unknown 2016-04-27 09:08:43 1 A4 Completed
VALE MATERIAL Unknown 2016-04-27 08:25:38 1 A4 Completed
Report Job260 Local_User 2016-04-27 08:14:00 1 A4 Completed
Report Job259 Local_User 2016-04-27 08:13:43 1 A4 Completed
C512M538003 casop-512 2016-04-26 14:22:14 1 A4 Completed
Depois, inverta a string linha por linha com:
rev entrada > temp ; mv temp entrada
Saída:
detelpmoC 4A 1 15:70:11 72-40-6102 3125-posac slx.2 LIRBA ED EHLATED
detelpmoC 4A 2 15:75:01 72-40-6102 nwonknU ertsemirt 1 GOD TOH ELAV
detelpmoC 4A 6 01:65:01 72-40-6102 nwonknU TES GOD TOH ELAV
detelpmoC 4A 1 01:15:01 72-40-6102 315-posac fdp.2044EEBEEB70B801B010AD605
detelpmoC 4A 1 12:71:01 72-40-6102 3125-posac slx.OIAM ED EHLATED
detelpmoC 4A 1 93:11:90 72-40-6102 nwonknU 37
detelpmoC 4A 1 53:11:90 72-40-6102 nwonknU 37
detelpmoC 4A 1 34:80:90 72-40-6102 nwonknU 58
detelpmoC 4A 1 83:52:80 72-40-6102 nwonknU LAIRETAM ELAV
detelpmoC 4A 1 00:41:80 72-40-6102 resU_lacoL 062boJ tropeR
detelpmoC 4A 1 34:31:80 72-40-6102 resU_lacoL 952boJ tropeR
detelpmoC 4A 1 41:22:41 62-40-6102 215-posac 300835M215C
Agora vá até o LibreOffice, mande um "colar especial" e defina o espaço como delimitador.
As primeiras 6 colunas vão ficar separadas corretamente, as demais vão ficar bagunçadas, pois serão criadas várias colunas dependendo de maior quantidade de espaço de nome de algum arquivo. O que você deve fazer é selecionar todas as colunas que virem depois de 6 e pedir para que o LibreOffice as funda em uma única coluna.
Depois é só pedir para o LibreOffice salvar .csv.
Nesse momento você vai ter o arquivo que você quer mas ao contrário, então você tem que invertar a string linha por linha novamente com "rev".
rev arquivo.csv > saida
[EDITADO] Se você precisar desse arquivo uma única vez, a solução do LibreOffice serve. Se tiver que executar a mesma rotina várias vezes teria que criar um regex para fazer o trabalho do LibreOffice (unir todas as colunas de "nome do arquivo" em uma única coluna), mas eu não sei como fazer isso, pois vai ser uma regex meio escabrosa.
[EDITADO 2] Descobri como fazer o trabalho que seria feito no LibreOffice pelo terminal.
Depois de ter eliminado o problema do 'Local User' e ter invertido o arquivo, execute:
sed -e 's/ /;/' -e 's/ /;/' -e 's/ /;/' -e 's/ /;/' -e 's/ /;/' -e 's/ /;/' entrada > temp ; mv temp entrada
Saída:
detelpmoC;4A;1;15:70:11;72-40-6102;3125-posac;slx.2 LIRBA ED EHLATED
detelpmoC;4A;2;15:75:01;72-40-6102;nwonknU;ertsemirt 1 GOD TOH ELAV
detelpmoC;4A;6;01:65:01;72-40-6102;nwonknU;TES GOD TOH ELAV
detelpmoC;4A;1;01:15:01;72-40-6102;315-posac;fdp.2044EEBEEB70B801B010AD605
detelpmoC;4A;1;12:71:01;72-40-6102;3125-posac;slx.OIAM ED EHLATED
detelpmoC;4A;1;93:11:90;72-40-6102;nwonknU;37
detelpmoC;4A;1;53:11:90;72-40-6102;nwonknU;37
detelpmoC;4A;1;34:80:90;72-40-6102;nwonknU;58
detelpmoC;4A;1;83:52:80;72-40-6102;nwonknU;LAIRETAM ELAV
detelpmoC;4A;1;00:41:80;72-40-6102;resU_lacoL;062boJ tropeR
detelpmoC;4A;1;34:31:80;72-40-6102;resU_lacoL;952boJ tropeR
detelpmoC;4A;1;41:22:41;62-40-6102;215-posac;300835M215C
Depois:
rev entrada > final.csv
Saída:
DETALHE DE ABRIL 2.xls;casop-5213;2016-04-27;11:07:51;1;A4;Completed
VALE HOT DOG 1 trimestre;Unknown;2016-04-27;10:57:51;2;A4;Completed
VALE HOT DOG SET;Unknown;2016-04-27;10:56:10;6;A4;Completed
506DA010B108B07BEEBEE4402.pdf;casop-513;2016-04-27;10:51:10;1;A4;Completed
DETALHE DE MAIO.xls;casop-5213;2016-04-27;10:17:21;1;A4;Completed
73;Unknown;2016-04-27;09:11:39;1;A4;Completed
73;Unknown;2016-04-27;09:11:35;1;A4;Completed
85;Unknown;2016-04-27;09:08:43;1;A4;Completed
VALE MATERIAL;Unknown;2016-04-27;08:25:38;1;A4;Completed
Report Job260;Local_User;2016-04-27;08:14:00;1;A4;Completed
Report Job259;Local_User;2016-04-27;08:13:43;1;A4;Completed
C512M538003;casop-512;2016-04-26;14:22:14;1;A4;Completed
Sei que deve ter algum jeito mais profissional de fazer esse último sed, mas esse aí faz o trabalho.
--------------------------------------------------------------------------------------------------------------------------------------
admin@server:~$ whatis life
life: nothing appropriate