les lignes suivantes ajoutent le contenu de essay_i.txt à la fin de essay1.txt;
touch essay1.txt
for (( i = 1 ; i <= 10 ; i++ )); do
sed '2p' essay_"${i}".txt >> essay1.txt
done
comment dois-je le changer pour que la première ligne de chaque essai_i.txt ne soit pas copiée (c'est-à-dire uniquement la copie de la ligne 2-> fin)?
Pour supprimer la première ligne, utilisez '1d'
(c'est-à-dire la ligne 1, supprimez):
touch essay1.txt
for file in essay_*; do
sed '1d' $file >> essay1.txt
done
la sortie sera
~$ cat essay1.txt
line 2 from essay 1
line 3 from essay 1
line 2 from essay 2
line 3 from essay 2
...
pour tous les fichiers nommés essay_*
dans le répertoire de travail en cours.
Au lieu d'utiliser sed
, vous pouvez également utiliser tail
pour effectuer ce travail:
tail -n +2 $file >> essay1.txt
Où +2
signifie à partir de la deuxième ligne (-n 2
correspond aux deux dernières lignes).