jakol Posted April 12, 2021 Posted April 12, 2021 Bonjour, je souhaiterais savoir comment faire un sed de la ligne dessous qui se trouve dans un fichier nommé sauvegardes.txt /pg_backup/pgiappli/appli/appli_20210411.gz j'ai fait ceci: sed 's/pg_backup//g' sauvegardes.txt | sed 's/pgiappli//g' | sed 's/appli//g' | sed 's/_//g' | sed 's/.gz//g' résultat: ////20210411 Comment faire pour supprimer les "/" ? Merci pour votre retour jakol
r.chatigré Posted April 12, 2021 Posted April 12, 2021 Il y a 18 minutes, jakol a écrit : /pg_backup/pgiappli/appli/appli_20210411.gz j'ai fait ceci: sed 's/pg_backup//g' sauvegardes.txt | sed 's/pgiappli//g' | sed 's/appli//g' | sed 's/_//g' | sed 's/.gz//g' résultat: ////20210411 Comment faire pour supprimer les "/" ? En général, le caractère d'échappement \ permet de ne pas interpréter le caractère suivant. Dans sa syntaxe, sed utilise les / Donc sed /\///g va remplacer le '/' Du coup, ta ligne devient: sed 's/\/pg_backup\/pgiappli\/appli\/appli_//g' sauvegardes.txt| sed 's/.gz//g On peut faire mieux avec une capture: sed -rn 's/\/pg_backup\/pgiappli\/appli\/appli_(.*).gz/\1/p' sauvegardes.txt
ragoutoutou Posted April 12, 2021 Posted April 12, 2021 On peut aussi utiliser un autre symbole que '/' comme délimiteur... echo 'lol/haha' | sed 's|/|-|g' lol-haha
Recommended Posts
Archived
This topic is now archived and is closed to further replies.