¿Cómo copio las primeras líneas de un archivo gigante y agrego una línea de texto al final, usando algunos comandos de Linux?
Respuestas:
El headcomando puede obtener las primeras nlíneas. Las variaciones son:
head -7 file
head -n 7 file
head -7l file
que obtendrá las primeras 7 líneas del archivo llamado "file". El comando a utilizar depende de su versión de head. Linux funcionará con el primero.
Para agregar líneas al final del mismo archivo, use:
echo 'first line to add' >>file
echo 'second line to add' >>file
echo 'third line to add' >>file
o:
echo 'first line to add
second line to add
third line to add' >>file
para hacerlo de un solo golpe.
Entonces, uniendo estas dos ideas, si desea obtener las primeras 10 líneas del input.txtarchivo output.txty agregar una línea con cinco "="caracteres, puede usar algo como:
( head -10 input.txt ; echo '=====' ) > output.txt
En este caso, hacemos ambas operaciones en un sub-shell para consolidar los flujos de salida en uno, que luego se usa para crear o sobrescribir el archivo de salida.
Supongo que lo que está tratando de lograr es insertar una línea después de las primeras líneas de un archivo de texto.
head -n10 file.txt >> newfile.txt
echo "your line >> newfile.txt
tail -n +10 file.txt >> newfile.txt
Si no desea el resto de las líneas del archivo, omita la parte final.
(head -n10 file.txt ; echo "Some stuff" ; tail -n +10 file.txt) > newfile.txt
head -n 100 yourfile.csv > shrunkfile.csv && echo 'morelines' >> shrunkfile.csv