man tail
diz:
-n, --lines=[+]NUM
output the last NUM lines, instead of the last 10;
or use -n +NUM to output starting with line NUM
portanto, você pode fazer
tail -n +51 myfile >>tmp
Eu tenho um arquivo de texto de 7GB
Eu preciso editar n primeiras linhas desse arquivo (vamos assumir n = 50)
Eu quero fazer isso da seguinte maneira:
head -n 50 myfile >> tmp
vim tmp # make necessary edits
substitute first 50 lines of myfile with the contents of tmp
rm tmp
como eu concluo a terceira etapa aqui? melhores soluções para o problema geral também são apreciadas observação: não há GUI neste ambiente
Faça um backup
cp fileorig.txt fileold.txt
copie 50 linhas em tmp.txt
head -n 50 fileorig.txt > tmp.txt
faça as edições necessárias com o vim
vim tmp.txt
Para fazer a coisa 3d fazer isso
Primeiro, remova as primeiras 50 linhas com sed
sed -i 1,50d fileorig.txt
em seguida, cat tmp editado + fileorig.txt no newfile
cat tmp.txt fileorig.txt > filenew.txt
Veja filenew.txt se você gosta se algo der errado restaurar bacckup
cp fileold.txt fileorig.txt
encontrou uma solução
head -n 50 myfile > tmp
vim tmp # make necessary edits
cat tmp > result
tail -n 50 myfile >> result
# result now contains the edited myfile
Tags files