database:utilitaires-imports

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
database:utilitaires-imports [2026/08/20 10:02] – [Remplacement de chaîne] jpmilcentdatabase:utilitaires-imports [2026/08/20 11:06] (Version actuelle) – [Extraire les lignes comprenant un nombre de tabulation anormal] jpmilcent
Ligne 90: Ligne 90:
 # Si tout est OK, la commande ne doit rien afficher... # Si tout est OK, la commande ne doit rien afficher...
 </code> </code>
 +
 +===== 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'\t' -v col=38 -v limite=500 'length($col) > limite { print "Ligne " NR " : " length($col) " caractères" }' synthese.csv > synthese.col-38-extra-chars.txt
 +</code>
 +  * ''%%-v col=38%%'' : remplacez 38 par le numéro de la colonne que vous souhaitez analyser.
 +  * ''%%-v limite=500%%'' : remplacez 500 par le nombre de caractères au-delà duquel vous souhaitez être alerté.
 +  * ''%%length($col) > limite%%'' : c'est la condition. awk ne déclenchera la suite que si la longueur du texte dans la cellule est strictement supérieure à votre limite.
 +  * ''%%{ print NR }%%'' : permet d'afficher uniquement le numéro de la ligne concernée. Dans l'exemple, nous affichons également le nombre de caractères ''%%length($col)%%''
  
 ===== Trouver les doublons ===== ===== Trouver les doublons =====
Ligne 123: Ligne 134:
  
  
-===== Affichage/Extraction de lignes contenant une chaine particulière =====+===== Affichage/Extraction de lignes contenant une chaîne particulière =====
  
 Par exemple, pour extraire les lignes du fichier ''synthese.csv'' contenant  Par exemple, pour extraire les lignes du fichier ''synthese.csv'' contenant 
Ligne 130: 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
 +# Recherche via RegExp :
 grep -P ' Stéphane\t\tpointage' synthese.csv >> synthese.problems.csv grep -P ' Stéphane\t\tpointage' synthese.csv >> synthese.problems.csv
 +# Recherche d'un texte 100% littéral (pas de regexp) :
 +grep -F " - Téléphérique de l'Aiguille du Midi. Gare intermédiaire.  Abords de la gare. \nLa zone parcouru" synthese.csv >> synthese.problems.csv
 +</code>
 +
 +===== Affichage/Extraction des numéros de ligne contenant une chaîne particulière =====
 +<code bash>
 +# Recherche via RegExp :
 +grep -nP ' Stéphane\t\tpointage' synthese.csv | cut -d: -f1
 +# Recherche d'un texte 100% littéral (pas de regexp) :
 +grep -nF " - Téléphérique de l'Aiguille du Midi. Gare intermédiaire.  Abords de la gare. \nLa zone parcouru" synthese.csv | cut -d: -f1
 </code> </code>
 +  * ''-n'' (//Line number//) : Demande à grep d'afficher le numéro de la ligne avant le texte (ex: 45231: - Téléphérique...).
 +  * ''%% | cut -d: -f1 %%'' : permet de garder seulement le numéro de ligne.
 +  * Pour rediriger vers un fichier ajouter à la fin ''%%> synthese.pattern-lines.txt%%''
  
 ==== Commandes d'extractions (TSV) ==== ==== Commandes d'extractions (TSV) ====
Ligne 179: Ligne 205:
 export NEW="Au contact du granite du Mont-Blanc et du socle de gneiss, la zone est jonchée de blocs granitiques venus des sommets (épars ou en moraines). Couvert de blocs en aval, le glacier des Pèlerins reste relativement statique : contrairement aux glaciers voisins, il ne marque actuellement aucun recul caractéristique." export NEW="Au contact du granite du Mont-Blanc et du socle de gneiss, la zone est jonchée de blocs granitiques venus des sommets (épars ou en moraines). Couvert de blocs en aval, le glacier des Pèlerins reste relativement statique : contrairement aux glaciers voisins, il ne marque actuellement aucun recul caractéristique."
 # Remplacement # Remplacement
-perl -pe 's/\Q$ENV{OLD}\E/$ENV{NEW}/g' synthese.csv > synthese_propre.csv+mv synthese.csv synthese.save.csv && perl -pe 's/\Q$ENV{OLD}\E/$ENV{NEW}/g' synthese.save.csv > synthese.csv
 </code> </code>
   * ''\Q'' et ''\E'' (//Quotemeta//) : ordonne à Perl de traiter tout le texte comme du texte littéral.   * ''\Q'' et ''\E'' (//Quotemeta//) : ordonne à Perl de traiter tout le texte comme du texte littéral.
  • database/utilitaires-imports.1787220125.txt.gz
  • Dernière modification : 2026/08/20 10:02
  • de jpmilcent