[SHELL] insertion de texte dans un fichier
Résolu
cestrade
-
cestrade -
cestrade -
Bonjour à tous,
je suis en train de développer un script dans lequel j'ai besoin d'insérer du texte entre 2 tags dans un fichier existant.
j'ai pensé à sed -i, mais ca ne permet que d'insérer du texte à une ligne connue.
exemple : j'ai un fichier comme suit :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TITRE</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<span class="textsm"></span>
et j'aimerai qu'il devienne :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TITRE_NOUVEAU</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000">
TEXTE_A_RAJOUTER
<span class="textsm"></span>
je précise que je suis sous windows, et que j'utilise cygwin.
Merci si vous avez une idée !
A+
Christophe
je suis en train de développer un script dans lequel j'ai besoin d'insérer du texte entre 2 tags dans un fichier existant.
j'ai pensé à sed -i, mais ca ne permet que d'insérer du texte à une ligne connue.
exemple : j'ai un fichier comme suit :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TITRE</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<span class="textsm"></span>
et j'aimerai qu'il devienne :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TITRE_NOUVEAU</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000">
TEXTE_A_RAJOUTER
<span class="textsm"></span>
je précise que je suis sous windows, et que j'utilise cygwin.
Merci si vous avez une idée !
A+
Christophe
A voir également:
- [SHELL] insertion de texte dans un fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Classic shell - Télécharger - Personnalisation
6 réponses
Au cas ou t'aurais sauté un thread ;-))
$ cat chris <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>TITRE</title> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="#FFFFFF" text="#000000"> <span class="textsm"></span> $ sed -e ' s!TITRE!TITRE_NOUVEAU! \!^<span class="textsm"!i\ TEXTE_A_RAJOUTER\ avec une nouvelle ligne\ et une dernière ' chris <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>TITRE_NOUVEAU</title> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="#FFFFFF" text="#000000"> TEXTE_A_RAJOUTER avec une nouvelle ligne et une dernière <span class="textsm"></span> $;-))
Bonjour
Une solution avec sed et bash (mais je pense que j'emploieri une autre méthode pour ce genre de chose, du perl peut-être, ou autre chose encore)
Cordialement
Une solution avec sed et bash (mais je pense que j'emploieri une autre méthode pour ce genre de chose, du perl peut-être, ou autre chose encore)
$ cat test.sh #!/bin/bash IN=test.html sed -e '/<span class="textsm"><\/span>/,$d' -e's/<title>.*<\/title>/<title>NOUVEAU_TITRE<\/title>/' $IN echo "TON CONTENU SUR PLEIN DE LIGNES" sed -e '1,/<body bgcolor="#FFFFFF" text="#000000">/d' $IN $ sh test.sh > resultat.html
Cordialement
Salut,
Et comme ça :
Et comme ça :
sed -e ' s!TITRE!TITRE_NOUVEAU! \!^<span class="textsm"!i\ TEXTE_A_RAJOUTER\ avec une nouvelle ligne\ et une dernière ' fichier;-))
merci asevere pour ta réponse !
j'ai essayé le 1° sed et ca fonctionne très bien.
en revanche, je n'arrive pas a faire marcher le 2° sed (pour écrire du texte apres "<body bgcolor=...")
que signifie le "1," dans ton expression ? et le "/d" à la fin ?
Merci
Christophe
j'ai essayé le 1° sed et ca fonctionne très bien.
en revanche, je n'arrive pas a faire marcher le 2° sed (pour écrire du texte apres "<body bgcolor=...")
que signifie le "1," dans ton expression ? et le "/d" à la fin ?
Merci
Christophe
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question