J'ai un fichier sous Linux, qui ont des données comme et je veux obtenir des lignes entre Line1 et Line4 I.e. Line3.
J'ai utilisé après la commande Linux en shell. P> ceci me donne la sortie suivante p> Sortie ci-dessus est parce que SED recherche des lignes comme contient et non une correspondance de ligne exacte.
Y a-t-il un moyen d'obtenir une chaîne entre la correspondance de la ligne d'extraction? P> p>
4 Réponses :
Si je vous ai bien compris ce que vous recherchez, c'est quelque chose comme Vous pouvez utiliser '^' pour dire que vous voulez que la recherche de recherche correspondre au début de la ligne d'un «$» pour correspondre à la fin de la ligne. P> sed -n -e '/ ^ ligne \ (1 \ | 4 \ \) $ / p' code>. p>
Ravi de voir votre réponse rapide à ce sujet. Des exemples que j'ai partagés ici ne sont qu'un exemple. Car mes données réelles, il n'y a rien de tel que la ligne1 ou la ligne2. Ma question était la suivante: comment nous pouvons obtenir des lignes entre deux lignes exactes à l'aide de la commande SED?
@Navnath Désolé, j'ai mal compris votre question,
essayez awk.
Lorsque vous spécifiez la plage en utilisant /../ ,/../, le match comprendra également les limites.
Mais dans votre cas, vous n'en avez pas besoin, vous devez donc faire une petite manipulation. P>
in SED Le Votre SED est étrange, cette commande sed devrait émettre les lignes entre les motifs, y compris les motifs eux-mêmes. Quoi qu'il en soit, sous peu testé à TutorialSpoint . P> P> ^ code> représente la ligne de départ, le
$ code> représente la fin de la ligne.
Si vous ne voulez que entre em>, exclure le début et la fin, un moyen facile est (GNU SED): démo: p> awk '/^Line1$/{s=1;next}/^Line4$/{s=0}s'
Quelle version de
sed code> utilisez-vous?