msoliver
(usa Debian)
Enviado em 26/07/2016 - 21:12h
ssidskull escreveu:
Muito obrigado!!
Irei marcar sim, mas só mais uma dúvida:
Eu posso colocar o número das linhas como variáveis?, tipo assim:
#!/bin/bash
LINHA_X_A=10
LINHA_X_B=20
LINHA_X_C=30
LINHA_X_D=40
LINHA_Y_A=16
LINHA_Y_B=7
LINHA_Y_C=4
LINHA_Y_D=3
FNT="SEU_ARQUIVO"
NLT=('$LINHA_X_A' '$LINHA_X_B' '$LINHA_X_C' '$LINHA_X_D') #LINHA TIRA
NLP=('$LINHA_Y_A' '$LINHA_Y_B' '$LINHA_Y_C' '$LINHA_Y_D') #LINHA POE
#TROCA LINHAS
if ((${#NLT[*]} == ${#NLP[*]}));then
for ((i=0;i<${#NLP[*]};i++));do
CLN=$(sed -n ''${NLP[$i]}'p' $FNT)
sed -i "${NLT[$i]}s/.*/$CLN/" $FNT
done
else
exit 1
fi
#DELETA LINHAS
for ((i=$((${#NLT[*]}-1));i>=0;i--));do
sed -i "${NLT[$i]}d" $FNT
done
Boa noite Sidney.
Eu posso colocar o número das linhas como variáveis?
Pode sim, testei aqui e funciona.
#!/bin/bash
FNT="LINHAS.txt"
A="1";B="3";C="5";D="7";E="9"
F="2";G="4";H="6";I="8";J="10"
NLT=("$A" "$B" "$C" "$D" "$E") #LINHA TIRA
NLP=("$F" "$G" "$H" "$I" "$J") #LINHA POE
#TROCA LINHAS
if ((${#NLT[*]} == ${#NLP[*]}));then
for ((i=0;i<${#NLP[*]};i++));do
CLN=$(sed -n ''${NLP[$i]}'p' $FNT)
sed -i "${NLT[$i]}s/.*/$CLN/" $FNT
done
else
exit 1
fi
#DELETA LINHAS
for ((i=$((${#NLT[*]}-1));i>=0;i--));do
sed -i "${NLT[$i]}d" $FNT
done
cat LINHAS.txt #ANTES
LINHA_01
LINHA_02
LINHA_03
LINHA_04
LINHA_05
LINHA_06
LINHA_07
LINHA_08
LINHA_09
LINHA_10
cat LINHAS.txt #DEPOIS
LINHA_02
LINHA_04
LINHA_06
LINHA_08
LINHA_10
NÃO COLOQUE AS VARIáVEIS ENTRE 'ASPAS SIMPLES'
Att.:
Marcelo Oliver