Come copiare le prime righe di un file gigante e aggiungere una riga di testo alla fine utilizzando alcuni comandi Linux?


89

Come copio le prime righe di un file gigante e aggiungo una riga di testo alla fine, utilizzando alcuni comandi Linux?


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

Risposte:


147

Il headcomando può ottenere le prime nrighe. Le variazioni sono:

head -7 file
head -n 7 file
head -7l file

che riceverà le prime 7 righe del file chiamato "file". Il comando da utilizzare dipende dalla versione di head. Linux funzionerà con il primo.

Per aggiungere righe alla fine dello stesso file, utilizzare:

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

per farlo in un colpo solo.

Quindi, legando queste due idee insieme, se volessi ottenere le prime 10 righe del input.txtfile output.txte aggiungere una riga con cinque "="caratteri, potresti usare qualcosa come:

( head -10 input.txt ; echo '=====' ) > output.txt

In questo caso, facciamo entrambe le operazioni in una sub-shell in modo da consolidare i flussi di output in uno, che viene quindi utilizzato per creare o sovrascrivere il file di output.


21

Suppongo che quello che stai cercando di ottenere sia inserire una riga dopo le prime righe di un file di testo.

head -n10 file.txt >> newfile.txt
echo "your line >> newfile.txt
tail -n +10 file.txt >> newfile.txt

Se non vuoi il resto delle righe dal file, salta la parte finale.


3
Le subshell ti consentono di farlo senza riaprire il file di output:(head -n10 file.txt ; echo "Some stuff" ; tail -n +10 file.txt) > newfile.txt
hobbs

5

Prime righe: man head .

Aggiungi righe: usa l' >>operatore (?) In Bash:

echo 'This goes at the end of the file' >> file
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.