Come copio le prime righe di un file gigante e aggiungo una riga di testo alla fine, utilizzando alcuni comandi Linux?
Risposte:
Il head
comando può ottenere le prime n
righe. 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.txt
file output.txt
e 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.
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.
(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