Eu tenho este código.
while IFS= read
do
read -r
read -r
read -r
echo $REPLY
done <<< "$LINES"
e dados em LINHAS:
----
Test
----
1,2,3
1,2,4
etc
Eu quero pular as primeiras 3 linhas e iniciar o processo apenas na linha 4 em diante. Eu tentei ler -r mas parece que não está funcionando. Eu quero saída:
1,2,3
1,2,4
etc
Aqui está uma sintaxe mais específica do bash.
Considerando que o conteúdo da variável é semelhante ao mencionado, a leitura dos dados da 4ª linha de
$LINE
é a das soluções. Isso pode ser feito assim,Isso imprime cada linha da 4ª linha
$LINE
até a última linha ser encontrada.Se você quiser que seu resultado seja usado dentro
while
de , isso funciona melhor,while IFS= read -r; do echo $REPLY; done <<< "$(tail +4 <<< "$LINE")"
.Depende do que você deseja fazer com as linhas, mas se você puder envolvê-lo em um retorno de chamada e ter a versão 4+ do bash, poderá usar
mapfile
(ou seu sinônimoreadarray
) com sua-s
opção (skip).Ex. dado
então depois de definir
você pode fazer