Inserir um texto a cada 2 linhas de um arquivo. [RESOLVIDO]

1. Inserir um texto a cada 2 linhas de um arquivo. [RESOLVIDO]

Huender
Murgoth

(usa Debian)

Enviado em 27/02/2018 - 18:59h

Bom dia tenho um arquivo com várias linhas, preciso inserir uma nova linha a cada 2 linhas do texto do arquivo ex:
Arquivo original:
Linha1
Linha2
Linha3
Linha4

Arquivo editado:
Linha1
Linha2
Nova Linha
Linha3
Linha4
Nova Linha

#Resolvido
Como diz o ditado quem tem google vai a Roma, consegui fazer o script creio que ainda tenha que melhorar muito... simplificar mais o código. "O intervalo é de 10 em 10 linhas"


#!/bin/bash
linhas=`sed -n '$=' /etc/ices/temp/listamp3.txt; `
x=1
nr1="p"
promo01=""
promo02=""
playlist="/etc/ices/playlist.txt"
temp="/etc/ices/temp/listamp3.txt"
rm $playlist
while [ $x -le $linhas ];
do
if [ $((x%10)) -eq 0 ]; then
sed -n $x$nr1 $temp >> $playlist
echo "$promo01" >> $playlist
echo "$promo02" >> $playlist
((x=$x+1))
else
sed -n $x$nr1 $temp >> $playlist
((x=$x+1))
fi
done



  


2. MELHOR RESPOSTA

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 28/02/2018 - 19:02h

Murgoth escreveu:

Bom dia tenho um arquivo com várias linhas, preciso inserir uma nova linha a cada 2 linhas do texto do arquivo ex:


Veja aí se resolve:
sed '0~2 a Novo texto' arquivo.txt 


3. Re: Inserir um texto a cada 2 linhas de um arquivo.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/02/2018 - 18:35h

Murgoth escreveu:

Bom dia tenho um arquivo com várias linhas, preciso inserir uma nova linha a cada 2 linhas do texto do arquivo ex:
Arquivo original:
Linha1
Linha2
Linha3
Linha4

Arquivo editado:
Linha1
Linha2
Nova Linha
Linha3
Linha4
Nova Linha

#Resolvido
Como diz o ditado quem tem google vai a Roma, consegui fazer o script creio que ainda tenha que melhorar muito... simplificar mais o código. "O intervalo é de 10 em 10 linhas"


#!/bin/bash
linhas=`sed -n '$=' /etc/ices/temp/listamp3.txt; `
x=1
nr1="p"
promo01=""
promo02=""
playlist="/etc/ices/playlist.txt"
temp="/etc/ices/temp/listamp3.txt"
rm $playlist
while [ $x -le $linhas ];
do
if [ $((x%10)) -eq 0 ]; then
sed -n $x$nr1 $temp >> $playlist
echo "$promo01" >> $playlist
echo "$promo02" >> $playlist
((x=$x+1))
else
sed -n $x$nr1 $temp >> $playlist
((x=$x+1))
fi
done


Boa noite, Murgoth.
Segue sugestão:
Após as linhas pares, imprime uma linha "vazia"
NN=0;while IFS='\n' read -r line;do let NN+=1;((NN%2==0)) && echo -e "$line\n" || echo "$line";done<ARQUIVO.txt 

cat ARQUIVO.txt
LINHA_01
LINHA_02
.
.
.
LINHA_20


Att.:
Marcelo Oliver



4. Re: Inserir um texto a cada 2 linhas de um arquivo. [RESOLVIDO]

Caio Sabadin
caiosabadin

(usa Slackware)

Enviado em 28/02/2018 - 21:24h

Se você quiser, com o awk:

awk -i inplace '{print; getline; print $1 "\n"}' seu_arquivo.txt 







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts