Je suis débutant
Je voudrais extraire des données, que le fichier commence par "START OF TEC MAP" et se termine par "END OF TEC MAP", à partir de fichier. Comment puis-je obtenir cet intervalle spécifique? Quelles commandes devrais-je utiliser?
Ouvrez le terminal et tapez:
uncompress -c codg0010.17i.Z | sed -n '/START OF TEC MAP/,/END OF TEC MAP/p'
Pour exporter les résultats dans un fichier de sortie, tapez:
uncompress -c codg0010.17i.Z | sed -n '/START OF TEC MAP/,/END OF TEC MAP/p' >> output.txt
L'option -i
de sed
est utilisée pour éditer les fichiers en place. Pour extraire le fichier de l'archive et le modifier sur place au lieu d'écrire le résultat dans output.txt:
uncompress codg0010.17i.Z # This archive has only 1 file in it named codg0010.17i.
sed -ni '/START OF TEC MAP/,/END OF TEC MAP/p' codg0010.17i
Ceci affiche tout le texte entre START OF TEC MAP et END OF TEC MAP, cependant ce fichier ne contient pas les données d'un seul TEC MAP, mais les données de 25 TEC MAP différentes. organisées séquentiellement et la commande ci-dessus imprime les données de toutes les 25 cartes ensemble.
La partie sed
de la commande a la forme suivante:
sed -n '/Word1/,/Word2/p' /path/to/file
Word1
est la chaîne de début (START OF TEC MAP)Word2
est la chaîne de fin (END OF TEC MAP)p
est une commande sed permettant d’imprimer des lignes spécifiques, en l’occurrence toutes les lignes incluant et entre START OF TEC MAP et END OF TEC MAP/path/to/file
est le chemin d'accès au fichier ou simplement son nom si votre répertoire actuel est identique à celui contenant le fichier.