Manipulando colunas [RESOLVIDO]

1. Manipulando colunas [RESOLVIDO]

Paulo Pimenta
paulopimenta6

(usa Debian)

Enviado em 30/10/2017 - 03:04h

Olá Listeiros,

Sou novo usando shell script com awk e sed e preciso da ajuda de vocês! Gerei um arquivo com várias colunas que são separadas entre por um espaço cada coluna, porém o formato em que ele deve estar consiste na primeira coluna para a segunda haver uma separação de 4 espaços, da segunda para a terceira de 1 espaço e assim por diante (ou seja, bem variável).

Atualmente conheço somente alguns poucos comandos do awk que infelizmente não me ajudam.

O arquivo a ser modificado: https://ufile.io/glgat
O arquivo deve ficar com a seguinte formatação: https://ufile.io/xmpzk

Agradeço a ajuda de todos.

Paulo.


  


2. Re: Manipulando colunas [RESOLVIDO]

Marcos Felipe
plimo263

(usa Ubuntu)

Enviado em 30/10/2017 - 14:53h

paulopimenta6 escreveu:

Olá Listeiros,

Sou novo usando shell script com awk e sed e preciso da ajuda de vocês! Gerei um arquivo com várias colunas que são separadas entre por um espaço cada coluna, porém o formato em que ele deve estar consiste na primeira coluna para a segunda haver uma separação de 4 espaços, da segunda para a terceira de 1 espaço e assim por diante (ou seja, bem variável).

Atualmente conheço somente alguns poucos comandos do awk que infelizmente não me ajudam.

O arquivo a ser modificado: https://ufile.io/glgat
O arquivo deve ficar com a seguinte formatação: https://ufile.io/xmpzk

Agradeço a ajuda de todos.

Paulo.


Fala amigo, ainda precisa de ajuda ? Como esta querendo fazer isto ? Da primeira para a segunda tem 4 espaços, da segunda para a terceira tem 1 espaço, da quarta para a quinta tem 1 espaço. É assim ?




3. Re: Manipulando colunas [RESOLVIDO]

Paulo Pimenta
paulopimenta6

(usa Debian)

Enviado em 30/10/2017 - 17:41h

Olá amigo! Isso mesmo obedecendo esse espaçamento de uma coluna para a outra!


4. Re: Manipulando colunas [RESOLVIDO]

Marcos Felipe
plimo263

(usa Ubuntu)

Enviado em 31/10/2017 - 10:02h

 
paulopimenta6 escreveu:

Olá amigo! Isso mesmo obedecendo esse espaçamento de uma coluna para a outra!


Bom dia, obrigado pelo retorno amigo. Estou enviando um shell script para ver se te ajuda, retirei os numeros de linha do primeiro arquivo e fiz minha simulacao nele.

Aqui vai o script.


#!/bin/bash

# Variavel que armazena a linha Lida
LINHA=''
#Contador para saber quando a divisao da linha é a primeira parte de uma frase
x=1
# Enquanto o arquivo for lido; faca
while read linha
do
# Para cada palavra retornada pela linha lida; faca
for palavra in $(echo "$linha");do
# Se o contador for igual á 2, incluimos um tab(4 espaços) entre a coluna 1 e 2
if [ $x = 2 ];then
# Armazene o valor na variavel linha
LINHA=$(echo -e "$LINHA\t$palavra")
# Contador nao e igual a um, então inclua somente um espaco
else
# Armazene o valor na variavel linha
LINHA=$(echo "$LINHA $palavra")
fi
# Incremente o contador em 1
x=$((x+1))
done
# Envia a saida para o arquivo, de forma a ser formatado com espaco de tab entre coluna 1 e 2, e as demais com 1 espaco
echo "$LINHA" >> novo_arquivo.txt
# ZERANDO AS VARIAVEIS
LINHA=''
x=1
done < arquivo.txt



Aqui vai um link do arquivo que retirei a numeracao de linha.

https://mega.nz/#!rJMwVa4S!ImZbJPAP_OYAbOqcGbqI-ZiiFnhXkU_zzUNZeR2WV8c

Espero que te ajude e que eu tenha entendido o que você deseja.

valeu






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts