Sed rechercher/remplacer une seule occurence...
Résolu/Ferméavion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 25 mars 2023 à 19:36
- Sed rechercher/remplacer une seule occurence...
- Rechercher ou entrer l'adresse - Guide
- Rechercher et remplacer word - Guide
- Remplacer disque dur par ssd - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Rechercher une adresse - Guide
3 réponses
Modifié le 23 mars 2023 à 21:39
Bonjour,
Tu peux tout d'abord appliquer une condition et ensuite, faire la substitution :
sed '/default_host/s/example.com/webmail.example.com/g' << "SCRIPT" <?php $config['url'] = 'https://example.com'; $config['default_host'] = 'tls://example.com'; //... SCRIPT
Donne :
<?php
$config['url'] = 'https://example.com';
$config['default_host'] = 'tls://webmail.example.com';
//...
On a donc bien remplacé example.com par webmail.example.com sous condition que la ligne contienne default_host. L'autre ligne n'est pas affectée.
25 mars 2023 à 19:36
Bonjour,
Dans ce cas :
sed '0,/default_host/{/default_host/s/example.com/webmail.example.com/}' << "SCRIPT" <?php $config['url'] = 'https://example.com'; $config['default_host'] = 'tls://example.com'; $config2['url'] = 'https://example.com'; $config2['default_host'] = 'tls://example.com'; //... SCRIPT
On dit à sed de travailler jusqu'à la première occurrence de "default_host", et de faire la substitution de "example.com" -> "webmail.example.com" uniquement sur les lignes contenant "default_host".
Le résultat est alors
<?php $config['url'] = 'https://example.com'; $config['default_host'] = 'tls://webmail.example.com'; $config2['url'] = 'https://example.com'; $config2['default_host'] = 'tls://example.com'; //...
Super, par contre je ne comprends pas pourquoi je n'arrive à remplacer une seule occurence avec le /1 au lieu du /g
sed '/default_host/s/example.com/webmail.example.com/g'
... et
sed '/default_host/s/example.com/webmail.example.com/1'
... semblent avoir le même effet, alors que je ne voudrais changer que la première ligne qui contient "default_host" dans mon fichier. Or cette variable apparaît plusieurs fois...
Fred
Modifié le 27 mars 2023 à 17:16
C'est effectivement plus simple...
Merci