Detecter absence de balise shell linux

Fermé
DOVO - 23 mars 2009 à 18:36
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 23 mars 2009 à 20:04
Bonjour,
Je code actuellement un petit programme shell, celui ci ouvre un fichier .txt et détecte la présence de balise en début de ligne, exemple de balise:
"T "
"C "
"H " ....
Je souhaiterai pouvoir detecter l'absence de balise dans mon programme:
exemple:
contenu dans le fichier .txt
"je suis bloqué dans mon programme"
Il faudrait convertir cette lligne en:
"<p>je suis bloqué dans mon programme</p>"

Aidez moi svp!!!!
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
23 mars 2009 à 18:45
Salut,
T'aurais pu dire que ça marchait la solution sur l'ancienne conversation ;-) : http://www.commentcamarche.net/forum/affich 11665640 remplacer balises shell?#3

De plus, la solution est la même :
s#(.*)#<p>\1</p>#

Sinon, je ne vois pas le lien entre tes balises T, C, H et ton exemple ?
1
Merci pour ton aide précieuse.
Pour les balises "T ", "C "....en fait je souhaite rajouter une balise lorsque je renconctre ces motifs en début de ligne et seulement si il n'y a pas de balise spécifique je souhaite rajouter une balise <p>

par exemple:
si j'ai dans mon fichier.txt:
"H comment ca marche
bonjour voici le corps du programme

T GRAND titre 1
slidglisrg sdkf
"
je souhaite obtenir le fichier suivant
<title>comment ca marche</title>
<p>bonjour voici le corps du programme</p>
<h1>GRAND titre 1</h1>
<p>slidglisrg sdkf </p>

J'ai vraiment beaucoup de mal avec les sed... voila la commande que j'ai tappé:

cat fichier_de_donnees.txt | sed #(.*)#<p>\1</p>#>>fichier_de_donnees.xml

et voila le message d'erreur renvoyé:


Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...

-n, --quiet, --silent
suppress automatic printing of pattern space
-e script, --expression=script
add the script to the commands to be executed
-f script-file, --file=script-file
add the contents of script-file to the commands to be executed
--help display this help and exit
-V, --version output version information and exit

If no -e, --expression, -f, or --file option is given, then the first
non-option argument is taken as the sed script to interpret. All
remaining arguments are names of input files; if no input files are
specified, then the standard input is read.

E-mail bug reports to: bug-gnu-utils@gnu.org .
Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
23 mars 2009 à 20:04
cat fichier_de_donnees.txt | sed #(.*)#<p>\1</p>#>>fichier_de_donnees.xml
Tu as oublié le s devant le #.

Sinon, tu peux utiliser :
cat fichier_de_donnees.txt | sed -r 
's#T (.*)#<title>\1</title># ; tn;
s#S (.*)#<h1>\1</head># ;tn; 
s#.*#<p>&</p>#
:n'

Attention, il faut que les paragraphes n'aient pas de \n, sinon cela mettra un <p></p> autour de chaque ligne.
Si cela te gène, le script est modifiable ;-)).
0