Sed : suppression insensible casse
eZula
Messages postés
3509
Statut
Contributeur
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Salut,
je souhaite effacer toutes les lignes d'un fichier qui ne commencent pas par
Pour cela j'utilise l'expression suivante :
Comment faire pour que cela fonctionne sans respect de la casse ? j'ai tenté avec !di ou encore i!d et il répond fermement " extra characters after command".
Est-il possible d'éviter de dénombrer toutes les combinaisons de caractères du genre [Hh][Kk][Ee][Yy].... ?
Merci
je souhaite effacer toutes les lignes d'un fichier qui ne commencent pas par
[HKEY_LOCAL_MACHINE\\SYSTEM
Pour cela j'utilise l'expression suivante :
sed "/^\[HKEY_LOCAL_MACHINE\\SYSTEM.*$/!d" fichier
Comment faire pour que cela fonctionne sans respect de la casse ? j'ai tenté avec !di ou encore i!d et il répond fermement " extra characters after command".
Est-il possible d'éviter de dénombrer toutes les combinaisons de caractères du genre [Hh][Kk][Ee][Yy].... ?
Merci
Configuration: Windows XP Firefox 3.0.5
4 réponses
-
Salut,
Le flag "I" (insensible à la casse) ne s'adapte qu'à la commande de substitution "s" malheureusement.
Une solution tout de même si c'est ou tout en majuscule ou tout en minuscule :sed '/^\(\[HKEY_LOCAL_MACHINE\\SYSTEM\|\[hkey_local_machine\\system\)/!d'
-
Salut,
Le flag "I" (insensible à la casse) ne s'adapte qu'à la commande de substitution "s" malheureusement.
Ben, en ce cas
je souhaite effacer toutes les lignes d'un fichier qui ne commencent pas par
Tu peux le faire en deux étapes :
- 1ère étape tu utilises s/// pour supprimer les chaînes qui ne commencent pas par ....
- 2ème étape tu supprimes les lignes vides
Comme ça il pourra utiliser le flag "i" -
-
-
-
-
-
Merci. Malheureusement il pourra s'agir également de
[HKEY_LOCAL_MACHINE\\SYSTEM [HKEY_LOCAL_MACHINE\\System [hkey_local_machine\\System ...
donc je crois que ce sera fatalement le schéma [Hh][Kk][Ee][Yy] -
grep -i '^\[HKEY_LOCAL_MACHINE\\SYSTEM' fichier > new_fich
-
grep c'est une bonne idée mais ça me contraindrait à l'ajouter avec ses dépendances à un programme qui en réalité est un batch dos
Mais au moins j'ai la certitude que le non-respect de la casse ne peut se faire avec la commande 'd', c'est déjà ça de pris :)