Script Shell : supprimer ligne dans fichier sous unix
Fermé
JsuisNul
Messages postés
122
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
14 février 2024
-
21 déc. 2021 à 17:32
jee pee Messages postés 40618 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 3 janvier 2025 - 23 déc. 2021 à 01:15
jee pee Messages postés 40618 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 3 janvier 2025 - 23 déc. 2021 à 01:15
A voir également:
- Script Shell : supprimer ligne dans fichier sous unix
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
- Script bat - Guide
3 réponses
jee pee
Messages postés
40618
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
3 janvier 2025
9 474
Modifié le 21 déc. 2021 à 19:41
Modifié le 21 déc. 2021 à 19:41
Bonjour,
Je ne pratique pas tous les jours linux, mais si on regarde : https://forums.commentcamarche.net/forum/affich-37622058-sed-supprimer-une-ou-plusieurs-lignes-d-un-fichier
quelque chose comme :
mais si A et/ou B vide aussi, cela ne fonctionne pas
Je ne pratique pas tous les jours linux, mais si on regarde : https://forums.commentcamarche.net/forum/affich-37622058-sed-supprimer-une-ou-plusieurs-lignes-d-un-fichier
quelque chose comme :
sed '/;;;;;;;$/d' mon_fichier.txt
mais si A et/ou B vide aussi, cela ne fonctionne pas
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
Modifié le 22 déc. 2021 à 11:12
Modifié le 22 déc. 2021 à 11:12
hello
possible défaut, élimine aussi
autre methode
$ awk -F ";" '{for(n=1; n<=NF; n++)if(length($n))x++; if(x>2)print $0; x=0}' fichier
champ1;champ2;champ3;champ4;champ5;champ6;champ7;champ8
A;B;C;D;E;F;G;H
A;B;;;E;F;G;H
A;B;C;D;E;;;;
possible défaut, élimine aussi
A;;C;;;;;;
autre methode
$ awk -F ";" '$1 && $2 && ($3 || $4 || $5 || $6 || $7 || $8)' fichier
champ1;champ2;champ3;champ4;champ5;champ6;champ7;champ8
A;B;C;D;E;F;G;H
A;B;;;E;F;G;H
A;B;C;D;E;;;;
jee pee
Messages postés
40618
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
3 janvier 2025
9 474
Modifié le 23 déc. 2021 à 12:42
Modifié le 23 déc. 2021 à 12:42
J'ai lancé une VM linux ;-)
Avec sed et regex :
Avec sed et regex :
sed -E '/^[[:alnum:]]+;[[:alnum:]]+;;;;;;;$/d' fic.txt
linuxlite ~ cat fic.txt A;B;C;D;E;F;G;H A;B;;;E;F;G;H A;B;;;;;;; A;B;C;D;E;;;; A;B;C;D;E;F;G;H A;B;;;E;F;G;H A;B;C;D;E;;;; AAABBB;ZZZCCC;;;;;;; linuxlite ~ sed -E '/^[[:alnum:]]+;[[:alnum:]]+;;;;;;;$/d' fic.txt A;B;C;D;E;F;G;H A;B;;;E;F;G;H A;B;C;D;E;;;; A;B;C;D;E;F;G;H A;B;;;E;F;G;H A;B;C;D;E;;;;
alnumteste les caractères alphanumériques, si les 2 premiers champs peuvent contenir autre chose, on peut utiliser :
sed -E '/^.+;.+;;;;;;;$/d' fic.txt