Lê múltiplas linhas armazenadas em um arquivo de texto e formata em bash [closed]

0

Os dados em meu arquivo de texto e o formato de saída esperado são os mostrados.

Eutentei:

cattest2.txt|tr-d"\t" 

Mas isso não está funcionando. Por favor ajude. Como eu tenho que ler o arquivo no formato de saída esperado e fazer mais processamento de loop.

    
por maries 02.04.2017 / 03:29

3 respostas

1

Usando o awk:

BEGIN { RS = "" ; }

{
    printf "%s %s %s %s %s %s %s\n", $1, $2, $3, $4, $5, $6, $7
}

produz:

WEBA 30-MAR-17 NA NOT_STARTED 01-APR-17 25-MAR-17 Target_Not_Started
WEBA 29-MAR-17 NA NOT_STARTED 01-APR-17 25-MAR-17 Target_Not_Started
WEBA 28-MAR-17 NA STARTED 01-APR-17 25-MAR-17 Target_Started
    
por 02.04.2017 / 04:47
1

Você pode usar o bash se precisar. Usando um loop e uma condição if como:

#!/bin/bash
filename="/root/a.txt"

while  read -r line
do
 if [ "$line" != "" ]; then

 echo $line |tr -d "\n"

else
 echo   ""
fi

done <"$filename"
    
por 02.04.2017 / 05:12
0

Perl

perl -l -00pe 'y/\n/ /' yourfile | column -t

Sed

< yourfile \
   sed -ne '
      /^WEBA/,/^$/!d
      /^$/g
      s/\n/ /gp
      H
      /^WEBA/h
   ' \
| column -t
    
por 02.04.2017 / 11:55