Bonsoire..
J'ai un problème avec cette commande shell à tirer les cheveux…
je veux mettre le caractère " a la fin de la première ligne mais son succès et il se plante toujours au début de la seconde ligne…
```
sed 's#^#url3="https:#' $Servertmpa75 > $Servertmpb78
sed 's#$#"#' $Servertmpb78 > $Servertmpb79
PATCH_J_XM2=$(cat /tmp/servrb79)
sed -i "s#url3=.*#${PATCH_J_XM2}#" /tmp/server
le resulta:
1 url3="https:https://www.server.net/live-tv/
2 "
3
```
# Contenu de servertmpa75
Posté par David Demelier (site web personnel) . Évalué à 1.
Peux-tu nous montrer à quoi ressemble le fichier servertmpa75 ? (anonymise le au pire) car là j'ai du mal à t'aider.
Vu comme ça j'ai l'imperssion que tu remplace simplement le début de la ligne avec
url3="https
et qu'ensuite tu souhaites rajouter"
à la fin ?git is great because linus did it, mercurial is better because he didn't
# Commentaire supprimé
Posté par Anonyme . Évalué à 6. Dernière modification le 22 octobre 2019 à 09:48.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Comment mettre un caractère e n fin de la premiere ligne sur shell
Posté par mino60 . Évalué à -4.
C'est magique ton truc, merci bcp…
[^] # Re: Comment mettre un caractère e n fin de la premiere ligne sur shell
Posté par mino60 . Évalué à -4. Dernière modification le 23 octobre 2019 à 01:28.
Comment faire pour mettre url1= au début de la première ligne url2= au debut de la seconde ligne et ainsi de suite…
mon fichier est comme ça
http://es2020….
http://es2020….
http://es2020….
……
……
j'ai pu mettre le caractère " a la fin de chaque ligne avec cette commande:
sed 's/$/"\n/'
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 4.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Comment mettre un caractère e n fin de la premiere ligne sur shell
Posté par mino60 . Évalué à -4. Dernière modification le 23 octobre 2019 à 10:51.
j'ai pu le faire avec sed et cat mais c'est pas propre
des fois le résultat que j'ai et comme ca
url1="http://iptv…..
"
url2=http://iptv2…..
"
url3=http://iptv2…..
"
[^] # Choix des outils
Posté par Arthur Accroc . Évalué à 3. Dernière modification le 23 octobre 2019 à 15:00.
As-tu une contrainte qui te limite à ces outils, ou est-ce juste du masochisme ?
Pour ma part, sauf contrainte forte (par exemple la nécessité qu’un script puisse tourner sur des systèmes dont je n’ai pas le contrôle et dont je ne suis pas sûr des outils installés), j’utilise des outils efficaces, ça épargne ma santé mentale.
Pour ajouter les guillemets à la solution d’Étienne :
AWK est l’outil typique pour ce genre de manipulation, plus puissant et moins cryptique que sed.
À noter : $0 contient la ligne sans le caractère de saut de ligne, donc le guillemet final est sur la bonne ligne.
Sinon, avec Perl :
Perl, c’est légèrement moins simple pour les cas triviaux que le shell ou AWK, mais quand le cas se complique, c’est bien plus puissant.
À noter :
-n le fait boucler sur les lignes de l’entrée standard ou des fichiers passés en paramètres (comme awk),
-l le fait enlever les sauts de ligne en entrée et les remettre en sortie (ainsi le guillemet final est sur la bonne ligne ; man perlrun pour plus de détails),
$. est le numéro de la ligne courante,
$_ la ligne courante (man perlvar),
il interprète les variables dans les chaînes de caractères, comme le shell.
D’un autre côté, en situation hostile (ni Perl, ni AWK), je ferais ça en shell pur (pas besoin de sed, il n’y a pas de remplacement à faire) :
nl=0; echo -e 'a\nb\nc' | while read l; do nl=$((nl+1)); echo "url$nl=\"$l\""; done; unset nl
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Choix des outils
Posté par mino60 . Évalué à -4. Dernière modification le 23 octobre 2019 à 23:08.
merci bcp mais j'ai toujours le saute de ligne
[^] # Re: Choix des outils
Posté par Arthur Accroc . Évalué à 2.
Note : j’ai reformaté les commandes que j’ai indiquées pour être utilisées avec un fichiers, sauf celle en pur shell, alors que c’est celle pour laquelle c’était le moins évident :
Avec quelle commande ?
Et avec quel shell si c’est la version shell ?
À l’essai, ma commande en shell fonctionne :
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.