Comment copier les premières lignes d'un fichier géant et ajouter une ligne de texte à la fin de celui-ci, en utilisant certaines commandes Linux?
Réponses:
La head
commande peut obtenir les premières n
lignes. Les variations sont:
head -7 file
head -n 7 file
head -7l file
qui obtiendra les 7 premières lignes du fichier appelé "file"
. La commande à utiliser dépend de votre version de head
. Linux fonctionnera avec le premier.
Pour ajouter des lignes à la fin du même fichier, utilisez:
echo 'first line to add' >>file
echo 'second line to add' >>file
echo 'third line to add' >>file
ou:
echo 'first line to add
second line to add
third line to add' >>file
pour le faire en un seul coup.
Donc, en liant ces deux idées ensemble, si vous voulez obtenir les 10 premières lignes du input.txt
fichier output.txt
et y ajouter une ligne de cinq "="
caractères, vous pouvez utiliser quelque chose comme:
( head -10 input.txt ; echo '=====' ) > output.txt
Dans ce cas, nous effectuons les deux opérations dans un sous-shell afin de consolider les flux de sortie en un seul, qui est ensuite utilisé pour créer ou écraser le fichier de sortie.
Je suppose que ce que vous essayez de réaliser est d'insérer une ligne après les premières lignes d'un fichier texte.
head -n10 file.txt >> newfile.txt
echo "your line >> newfile.txt
tail -n +10 file.txt >> newfile.txt
Si vous ne voulez pas rester les lignes du fichier, ignorez simplement la partie de fin.
(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