Pular para o conteúdo

Manipulando colunas [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Manipulando colunas [RESOLVIDO]

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.

Responder tópico

2. Re: Manipulando colunas [RESOLVIDO]

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]

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]

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

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder