¿Cómo copiar las primeras líneas de un archivo gigante y agregar una línea de texto al final usando algunos comandos de Linux?


89

¿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?


1
En bashhead -n 100 yourfile.csv > shrunkfile.csv && echo 'morelines' >> shrunkfile.csv
Eric Leschinski

Respuestas:


147

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.


21

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.


3
Los subshells le permiten hacer esto sin volver a abrir el archivo de salida:(head -n10 file.txt ; echo "Some stuff" ; tail -n +10 file.txt) > newfile.txt
hobbs

5

Primeras líneas: man head.

Agregar líneas: use el >>operador (?) En Bash:

echo 'This goes at the end of the file' >> file
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.