Comment utiliser Head et Tail pour imprimer des lignes spécifiques d'un fichier
Je veux dire lignes de sortie de 5 à 10 d'un fichier, comme le passage d'arguments dans.
Comment pourrais-je l'utiliser head
et tail
pour ce faire?
où firstline = $2
et lastline = $3
et filename = $1
.
De course, il devrait ressembler à ceci:
./lines.sh filename firstline lastline
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
De côté les réponses données par fedorqui et Kentvous pouvez également utiliser un seul
sed
commande:Ou, pour éviter toute externe utilitaires, si vous utilisez une version récente de bash (ou zsh):
Si vous souhaitez que les lignes de 20 à 30 qui signifie que vous voulez de 11 lignes à partir de 20 et finissant au 30:
Qui est, d'abord de vous obtenir le premier
30
lignes et ensuite vous sélectionnez la dernière11
(qui est,30-20+1
).Donc, dans votre code, il serait:
Basé sur
firstline = $2
lastline = $3
filename = $1
essayer ce one-liner:
en ligne ci-dessus:
L'enregistrer comme "script.sh":
Il est PAS d'ERREUR de MANIPULATION (pour des raisons de simplicité), de sorte que vous devez appeler votre script comme suit:
./script.sh yourfile.txt firstline lastline
Si vous avez besoin seulement de la ligne de "10" à partir de yourfile.txt:
Assurez-vous que:
(firstline > 0) ET (lastline > 0) ET (firstline <= lastline)