Je me demandais quelle serait la meilleure façon de tout obtenir après la deuxième occurrence d'une chaîne. J'ai des fichiers comme ceci:Comment retourner tout après la 2ème occurrence de chaîne
---
title: Test Document
creation_date: 01-29-2016
---
Text, blah blah blah
More text, blah blah blah
J'ai donc le fichier qui contient « frontmatter » entre deux ---
s. Je voudrais retourner tout après la seconde ---
, de préférence en utilisant une commande bash de quelque sorte. En pensant à cela, sed et awk sont venus à l'esprit, mais je ne sais pas vraiment lequel serait le mieux pour le travail.
Une partie importante de ceci est qu'il peut y avoir n'importe quelle quantité arbitraire de paire clé-valeur dans le frontmatter, donc juste couper les quatre premières lignes n'est pas une approche valide ici.
Il est préférable d'expliquer avec une entrée exacte que vous avez une sortie exacte que vous voulez. – Inian
Si vous envisagez vraiment de faire beaucoup de requêtes automatisées, un format de fichier différent est en ordre. Cela semble être conçu pour un balayage rapide par un œil humain, et non une analyse programmatique. – chepner
En essayant de savoir si vous devriez utiliser sed ou awk pour tout problème: sed est pour des substitutions simples sur des lignes individuelles (** c'est tout **), awk est pour tout le reste. Le problème que vous décrivez n'est pas une simple substitution sur une ligne individuelle et par conséquent ce n'est pas un travail pour sed, c'est un travail pour awk. Si vous essayez d'utiliser sed pour autre chose, vous vous retrouverez rapidement dans un enfer de runes indéchiffrables, de problèmes de portabilité, d'inefficacité et à peu près tous les autres attributs indésirables du logiciel. –