
Envoyé par
bras39
Par rapport à ta question, je voudrais juste indiquer une progression dans le precessus de suppression et de récupération des colones : à chaque fois que je récupère (pour copier dans un nouveau fichier) ou que je supprime une colone (jusqu'à la suppression ou la récupération de la 3ème colone), les autres lignes restent comme elle est dans mon fichier pilotes.
Non. Dans Unix, les traitements sont atomiques (tout ou rien). On part d'un fichier X fini, on lui effectue un traitement T et on obtient un fichier Y fini. Ensuite, on repart du fichier Y, on lui effectue un traitement T' et on obtient un fichier Z et etc etc etc.
Si le fichier Y n'est pas nécessaire, alors on peut combiner les traitements T et T' par des pipes.

Envoyé par
bras39
Je rencontre encore cette situation :
mon fichier pilotes comportent 4 colones séparés par 2 à plusieurs tabulations ou espaces.
Comment faire pour y supprimer les 2 colones du milieu : a) la 4ème colone se décale pour prendre la place de la 2ème; b) elle ne bouge pas de sa position?
Bon, là il faut aussi arrêter. Sous Unix, il y a distinguo entre "ce qui est" et "ce qui s'affiche". La philosophie est que tu as un fichier de départ. S'il te convient pas alors tu le transformes jusqu'à ce qu'il te convienne. Puis, ensuite, il ne bouge plus et tu ne fais que l'afficher sous différentes formes au travers d'outils. awk est le plus puissant de tous (car il est complètement programmable) mais il y en a d'autres comme cut, tr, pr, etc...
Quand tu dis "supprimer" on comprend "supprimer du fichier d'origine". Mais là, il semblerait que ce soit "supprimer à l'écran" ou plus simplement "afficher d'une certaine façon". Donc là, encore awk
awk '{printf("%s %s\n", $1, $4)}' pilotes
Et si tu as d'autres questions comme "ben en fait je voudrais afficher avec la 2° colonne qui prend la place de la 4° et la 1ère colonne répétée 3 fois" ben là encore awk
awk '{printf("%s %s %s %s %s\n", $1, $1, $1, $3, $2)}' pilotes
Partager