Esse problema pode, na verdade, ser mais fácil de fazer com ed
, já que é basicamente um editor de texto com script, em vez de um processador de fluxo. Usando ed
, você não precisa salvar todas as linhas do arquivo em uma matriz, por exemplo, já que ele já está fazendo isso para você.
# Create test file
~> printf "%s\n" aaaaaa bbbbbb cccccc dddddd eeeeee >test.txt
~> cat test.txt
aaaaaa
bbbbbb
cccccc
dddddd
eeeeee
# Use ed to open the file, move the last line after the first, save, and quit
~> printf "%s\n" '$m1' wq | ed test.txt
35
35
~> cat test.txt
aaaaaa
eeeeee
bbbbbb
cccccc
dddddd