J'ai quelques fichiers CSV que je voudrais analyser avec grep (ou une autre fonction du terminal) afin d'extraire quelques informations. Ils sont sous cette forme:Comment ajouter une valeur à la fin de chaque ligne obtenue avec grep
* Comment 1
* Comment line 2 explaining what the following numbers mean
1000000 ; 3208105 ; 0.18 ; 0.45 ; 0.00015 ; 0.1485 ; 0.03 ; 1 ; 1 ; 5 ; 477003 ;
* Comment 3
* Comment 4 explaining the meaning of the following lines
* Comment 5
0; 706520; p; 30.4983
1; 20859; p; 57.8
2; 192814; p; 111.842
3; 344542; p; 130.543
4; 54605; p; 131.598
5; 64746; d; 140.898
6; 442082; p; 214.11
7; 546701; p; 249.167
8; 298394; p; 305.034
9; 81188; p; 305.034
.......
Dans chaque fichier il pourrait y avoir au plus une ligne dans laquelle le troisième champ est égal à d
au lieu de p
. Donc, soit il y a une ligne contenant un d
ou il n'y en a pas.
J'ai beaucoup de fichiers comme ceci et ce que je voudrais faire est d'extraire de chaque fichier la ligne (si présente) contenant la lettre d
et d'ajouter après cette ligne le dernier paramètre de la première ligne sans commentaire, que dans cet exemple serait 47703
. Jusqu'à présent, j'ai réussi à extraire séparément les lignes dont j'avais besoin.
Avec cela, je peux extraire toutes les lignes contenant un d
de chaque fichier que j'ai:
grep -h -E ' d;' *.csv > output.csv
Et avec cela, je peux extraire précisément le nombre 47703
d'un fichier comme celui dans l'exemple:
grep -v -e "^*" -e " p; " -e " d; " example_file.csv | cut -d \; -f 11
Mais je ne sais pas comment mettre ces deux ensemble.
La sortie finale, je voudrais obtenir de l'exemple au début est une seule ligne comme celui-ci:
5; 64746; d; 140.898; 47703
et je voudrais avoir une ligne comme celui-ci pour chaque fichier CSV dans le répertoire courant .
Existe-t-il un moyen de le faire?
S'il vous plaît ajouter l'entrée de l'échantillon et votre sortie désirée pour cette entrée de l'échantillon à votre question. – Cyrus
J'ai fait. L'entrée est le premier exemple et la sortie est la dernière ligne – jackscorrow