Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| database:utilitaires-imports [2022/04/18 12:00] – [Trouver les valeurs NULL dans les champs obligatoires] jpmilcent | database:utilitaires-imports [2026/08/20 11:06] (Version actuelle) – [Extraire les lignes comprenant un nombre de tabulation anormal] jpmilcent | ||
|---|---|---|---|
| Ligne 33: | Ligne 33: | ||
| Compter le nombre de ligne d'un fichier : <code bash> wc -l synthese.csv </ | Compter le nombre de ligne d'un fichier : <code bash> wc -l synthese.csv </ | ||
| + | |||
| + | ==== Visualiser un fichier TSV dans un terminal ==== | ||
| + | Pour afficher les premières lignes d'un fichier TSV sans l' | ||
| + | * Créer un fichier '' | ||
| + | #!/bin/bash | ||
| + | perl -pe ' | ||
| + | </ | ||
| + | * Editer '' | ||
| + | # pretty tsv with first ten lines | ||
| + | alias watch=' | ||
| + | </ | ||
| + | * Vous pouvez lancer la commande '' | ||
| ===== Extraire les lignes comprenant un nombre de tabulation anormal ===== | ===== Extraire les lignes comprenant un nombre de tabulation anormal ===== | ||
| Ligne 50: | Ligne 62: | ||
| Il est possible de repérer les lignes posant problème avec la succession | Il est possible de repérer les lignes posant problème avec la succession | ||
| de commandes suivantes : | de commandes suivantes : | ||
| + | |||
| + | Si votre espace de stockage principal n'est pas un SSD NVME mais que vous en posséder un sur la machine, l' | ||
| <code bash> | <code bash> | ||
| # Afficher le nombre de tabulation des lignes du fichier contenant un extrait de la synthese | # Afficher le nombre de tabulation des lignes du fichier contenant un extrait de la synthese | ||
| # Le chemin / | # Le chemin / | ||
| - | grep -n -o -P " | + | grep -n -o -P " |
| # Extraire le nombre de tabulation anormal (**ici différent de 58**) et le numéro de la ligne correspondante : | # Extraire le nombre de tabulation anormal (**ici différent de 58**) et le numéro de la ligne correspondante : | ||
| # Le chemin / | # Le chemin / | ||
| - | grep -n -o -P " | + | grep -n -o -P " |
| # Supprimer le nombre de tabulation (occupant les 8 premières caractères de chaque ligne) | # Supprimer le nombre de tabulation (occupant les 8 premières caractères de chaque ligne) | ||
| Ligne 73: | Ligne 87: | ||
| # Après correction, vous pouvez vérifier si le fichier corrigé ne contient plus de ligne en erreur | # Après correction, vous pouvez vérifier si le fichier corrigé ne contient plus de ligne en erreur | ||
| # Le chemin / | # Le chemin / | ||
| - | grep -n -o -P " | + | grep -n -o -P " |
| # Si tout est OK, la commande ne doit rien afficher... | # Si tout est OK, la commande ne doit rien afficher... | ||
| </ | </ | ||
| + | |||
| + | ===== Extraire lignes avec trop de caractères dans une colonne ===== | ||
| + | |||
| + | <code bash> | ||
| + | # Extraire les lignes dont la colonne 38 possède plus de 500 caractères : | ||
| + | awk -F' | ||
| + | </ | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| ===== Trouver les doublons ===== | ===== Trouver les doublons ===== | ||
| Ligne 109: | Ligne 134: | ||
| - | ===== Affichage/ | + | ===== Affichage/ |
| Par exemple, pour extraire les lignes du fichier '' | Par exemple, pour extraire les lignes du fichier '' | ||
| Ligne 116: | Ligne 141: | ||
| utiliser les commandes suivantes : | utiliser les commandes suivantes : | ||
| <code bash> | <code bash> | ||
| + | # Extraction de la ligne des entêtes de colonne : | ||
| head -1 synthese.csv > synthese.problems.csv | head -1 synthese.csv > synthese.problems.csv | ||
| + | # | ||
| grep -P ' Stéphane\t\tpointage' | grep -P ' Stéphane\t\tpointage' | ||
| + | # | ||
| + | grep -F " - Téléphérique de l' | ||
| </ | </ | ||
| + | |||
| + | ===== Affichage/ | ||
| + | <code bash> | ||
| + | # | ||
| + | grep -nP ' Stéphane\t\tpointage' | ||
| + | # | ||
| + | grep -nF " - Téléphérique de l' | ||
| + | </ | ||
| + | * '' | ||
| + | * '' | ||
| + | * Pour rediriger vers un fichier ajouter à la fin '' | ||
| ==== Commandes d' | ==== Commandes d' | ||
| Ligne 146: | Ligne 186: | ||
| ===== Remplacer le contenu d'une colonne ===== | ===== Remplacer le contenu d'une colonne ===== | ||
| Remplacer le contenu de la 33ème colonne dans le fichier // | Remplacer le contenu de la 33ème colonne dans le fichier // | ||
| - | ===== Remplacement de chaine | + | ===== Remplacement de chaîne |
| - | Pour remplacer une chaine | + | === Remplacement de chaîne courte === |
| + | Pour remplacer une chaîne | ||
| '' | '' | ||
| Par exemple, pour remplacer '' | Par exemple, pour remplacer '' | ||
| Ligne 156: | Ligne 197: | ||
| </ | </ | ||
| - | Remplacement multi-lignes (option '' | + | === Remplacement de chaîne longue === |
| + | Remplacement de grande chaîne de texte avec Perl : | ||
| + | <code bash> | ||
| + | # Texte actuel | ||
| + | export OLD=" | ||
| + | # Nouveau texte | ||
| + | export NEW=" | ||
| + | # Remplacement | ||
| + | mv synthese.csv synthese.save.csv && perl -pe ' | ||
| + | </ | ||
| + | * '' | ||
| + | * Très rapide car Perl lit une ligne, la modifie si besoin, et l' | ||
| + | |||
| + | === Remplacement multi-lignes === | ||
| + | Remplacement multi-lignes | ||
| <code bash> | <code bash> | ||
| # Remplacement des retours charriot (CR) suivi de retour à la ligne (LF) (si erreur INT_MAX, voir ci-dessous) | # Remplacement des retours charriot (CR) suivi de retour à la ligne (LF) (si erreur INT_MAX, voir ci-dessous) | ||
| Ligne 164: | Ligne 219: | ||
| </ | </ | ||
| + | Remplacement multi-lignes avec Awk (rassembler 2 lignes successives) : | ||
| + | <code bash> | ||
| + | # Exemple de texte de fin de ligne : anticlinal\n | ||
| + | awk '/ | ||
| + | </ | ||
| + | * Ici la fin de ligne se termine par les caractères littérals '' | ||
| + | * '' | ||
| + | * Si la ligne ne contient pas le pattern, elle est renvoyée tel quel. | ||
| ===== Stats ===== | ===== Stats ===== | ||
| * Date d' | * Date d' | ||