Detecter absence de balise shell linux
DOVO
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
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!!!!
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:
- Detecter absence de balise shell linux
- Message absence thunderbird - Guide
- Classic shell - Télécharger - Personnalisation
- Comment détecter un traceur sur téléphone - Accueil - Confidentialité
- Linux reader - Télécharger - Stockage
- Toutou linux - Télécharger - Systèmes d'exploitation
2 réponses
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 ?
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 ?
cat fichier_de_donnees.txt | sed #(.*)#<p>\1</p>#>>fichier_de_donnees.xml
Tu as oublié le s devant le #.
Sinon, tu peux utiliser :
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 ;-)).
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 ;-)).
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.