Commande SED
Résolu/Fermé
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
-
8 avril 2008 à 13:56
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 - 8 avril 2008 à 16:49
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 - 8 avril 2008 à 16:49
A voir également:
- Commande SED
- Invite de commande - Guide
- Commande terminal mac - Guide
- Commande dism - Guide
- Diskpart commande - Guide
- Commande scannow - Guide
13 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
8 avril 2008 à 14:23
8 avril 2008 à 14:23
Salut,
En espérant avoir bien compris ta demande...
En espérant avoir bien compris ta demande...
$ cat plop blabla blablabla blablaba [/] $ sed '\|[/]| i\ \ '"$1"'R =\ '"$1"'W =\ ' plop blabla blablabla blablaba totoR = totoW = [/] $Si ça marche, rajoute l'option "-i" ;-))
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
8 avril 2008 à 14:40
8 avril 2008 à 14:40
Merci de ton retour.
J'ai du mal à comprendre comment utiliser ce que tu me donnes.
j'ai modifié mon script avec ca :
sed -i '\|[/]| i\'"$1"'R = \ '"$1"'W = \' /usr/fichier.txt
Mais ca fonctionne encore moins bien qu'avec 2 lignes.
j'obtiens ca: $1 = toto
totoR = totoW =
[/]
plus aucun saut de ligne
J'ai du mal à comprendre comment utiliser ce que tu me donnes.
j'ai modifié mon script avec ca :
sed -i '\|[/]| i\'"$1"'R = \ '"$1"'W = \' /usr/fichier.txt
Mais ca fonctionne encore moins bien qu'avec 2 lignes.
j'obtiens ca: $1 = toto
totoR = totoW =
[/]
plus aucun saut de ligne
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
8 avril 2008 à 14:48
8 avril 2008 à 14:48
j'ai compris.
il fallait que je tape ca:
sed -i '\|[/]| i\'"$1"'R = \
'"$1"'W = \
\' /usr/fichier.txt
la ca marche.
Par contre, mon script est tout laid.
j'avais essayé ca:
sed -i '/\[\//i\{x;p;x}' /usr/fichier.txt
ou ca /usr/fichier.txt
sed -i '/\[\//i\\n' /usr/fichier.txt
mais ca marche pas.
il fallait que je tape ca:
sed -i '\|[/]| i\'"$1"'R = \
'"$1"'W = \
\' /usr/fichier.txt
la ca marche.
Par contre, mon script est tout laid.
j'avais essayé ca:
sed -i '/\[\//i\{x;p;x}' /usr/fichier.txt
ou ca /usr/fichier.txt
sed -i '/\[\//i\\n' /usr/fichier.txt
mais ca marche pas.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
8 avril 2008 à 14:55
8 avril 2008 à 14:55
Ne te sers de l'oprion "-i" qu'une fois que ta syntaxe marchera !!!
sed '\|[/]| i\\n'"$1"'R =\n'"$1"'W = \n';-))
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
8 avril 2008 à 15:01
8 avril 2008 à 15:01
ca ne fonctionne pas
resultat $1=test2
\ntest2R =ntest2W = n
[/]
resultat $1=test2
\ntest2R =ntest2W = n
[/]
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
8 avril 2008 à 15:07
8 avril 2008 à 15:07
Affiche ton script et les commandes que tu tapes...
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
8 avril 2008 à 15:15
8 avril 2008 à 15:15
le voici:
#!/bin/sh
# ce script va permettre de :
# - creer un repository
# - changer le proprietaire et le groupe du repository en $USER
# - chmoder le repository en 771
# le user de Apache est :
USER=svn
if [ $# = 1 ]
then
/usr/local/subversion-1.3.1/bin/svnadmin create /svn/$1
chown -R $USER.$USER /svn/$1
chmod -R 771 /svn/$1
echo repository fonctionnel.
echo "" >> /svn/permissions.txt
sed '\|[/]| i\\n'"$1"'R =\n'"$1"'W = \n' /svn/permissions.txt
echo "["$1":/]" >> /svn/permissions.txt
echo "@Adm = rw" >> /svn/permissions.txt
echo "* =" >> /svn/permissions.txt
echo "" >> /svn/permissions.txt
echo "["$1":/branches]" >> /svn/permissions.txt
echo "@Adm = rw" >> /svn/permissions.txt
echo "@"$1"R = r" >> /svn/permissions.txt
echo "@"$1"W = rw" >> /svn/permissions.txt
echo "* =" >> /svn/permissions.txt
echo "" >> /svn/permissions.txt
echo "["$1":/tags]" >> /svn/permissions.txt
echo "@Adm = rw" >> /svn/permissions.txt
echo "@"$1"R = r" >> /svn/permissions.txt
echo "@"$1"W = rw" >> /svn/permissions.txt
echo "* =" >> /svn/permissions.txt
echo "" >> /svn/permissions.txt
echo "["$1":/trunk]" >> /svn/permissions.txt
echo "@Adm = rw" >> /svn/permissions.txt
echo "@"$1"R = r" >> /svn/permissions.txt
echo "@"$1"W = rw" >> /svn/permissions.txt
echo "* =" >> /svn/permissions.txt
echo "" >> /svn/permissions.txt
else
echo nombre d\'argument incorrect.
echo usage: svncreate /svn/repository
fi
#!/bin/sh
# ce script va permettre de :
# - creer un repository
# - changer le proprietaire et le groupe du repository en $USER
# - chmoder le repository en 771
# le user de Apache est :
USER=svn
if [ $# = 1 ]
then
/usr/local/subversion-1.3.1/bin/svnadmin create /svn/$1
chown -R $USER.$USER /svn/$1
chmod -R 771 /svn/$1
echo repository fonctionnel.
echo "" >> /svn/permissions.txt
sed '\|[/]| i\\n'"$1"'R =\n'"$1"'W = \n' /svn/permissions.txt
echo "["$1":/]" >> /svn/permissions.txt
echo "@Adm = rw" >> /svn/permissions.txt
echo "* =" >> /svn/permissions.txt
echo "" >> /svn/permissions.txt
echo "["$1":/branches]" >> /svn/permissions.txt
echo "@Adm = rw" >> /svn/permissions.txt
echo "@"$1"R = r" >> /svn/permissions.txt
echo "@"$1"W = rw" >> /svn/permissions.txt
echo "* =" >> /svn/permissions.txt
echo "" >> /svn/permissions.txt
echo "["$1":/tags]" >> /svn/permissions.txt
echo "@Adm = rw" >> /svn/permissions.txt
echo "@"$1"R = r" >> /svn/permissions.txt
echo "@"$1"W = rw" >> /svn/permissions.txt
echo "* =" >> /svn/permissions.txt
echo "" >> /svn/permissions.txt
echo "["$1":/trunk]" >> /svn/permissions.txt
echo "@Adm = rw" >> /svn/permissions.txt
echo "@"$1"R = r" >> /svn/permissions.txt
echo "@"$1"W = rw" >> /svn/permissions.txt
echo "* =" >> /svn/permissions.txt
echo "" >> /svn/permissions.txt
else
echo nombre d\'argument incorrect.
echo usage: svncreate /svn/repository
fi
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
8 avril 2008 à 15:22
8 avril 2008 à 15:22
Tu peux afficher tes tests aussi (en rapport avec ton post #5), fichiers + commandes + résultats.
Affiche aussi le résultat de la commande "cat -A /usr/fichier.txt" s'il ta plaît, merci.
Affiche aussi le résultat de la commande "cat -A /usr/fichier.txt" s'il ta plaît, merci.
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
8 avril 2008 à 15:33
8 avril 2008 à 15:33
fichier de depart:
[groups]
Adm =
[/]
@Adm = rw
* =
--------------------------------------------------------------------------- (juste pour separer, n'appartient pas au fichier)
cat -A /svn/permissions.txt
[groups]$
$
Adm = $
$
[/]$
@Adm = rw$
* =$
-----------------------------------------------------------------------------(juste pour separer, n'appartient pas au fichier)
sed '\|[/]| i\\n'"$1"'R =\n'"$1"'W = \n' /svn/permissions.txt
[groups]
Adm =
\nR =nW = n
[/]
@Adm = rw
* =
-----------------------------------------------------------------------------(juste pour separer, n'appartient pas au fichier)
idealement a la fin de mon script j'aimerai obtenir ca avec $1 = toto:
[groups]
Adm =
totoR =
totoW =
[/]
@Adm = rw
* =
[toto:/]
@Adm = rw
@totoR = r
@totoW = rw
* =
[groups]
Adm =
[/]
@Adm = rw
* =
--------------------------------------------------------------------------- (juste pour separer, n'appartient pas au fichier)
cat -A /svn/permissions.txt
[groups]$
$
Adm = $
$
[/]$
@Adm = rw$
* =$
-----------------------------------------------------------------------------(juste pour separer, n'appartient pas au fichier)
sed '\|[/]| i\\n'"$1"'R =\n'"$1"'W = \n' /svn/permissions.txt
[groups]
Adm =
\nR =nW = n
[/]
@Adm = rw
* =
-----------------------------------------------------------------------------(juste pour separer, n'appartient pas au fichier)
idealement a la fin de mon script j'aimerai obtenir ca avec $1 = toto:
[groups]
Adm =
totoR =
totoW =
[/]
@Adm = rw
* =
[toto:/]
@Adm = rw
@totoR = r
@totoW = rw
* =
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
8 avril 2008 à 15:40
8 avril 2008 à 15:40
Tiens j'ai juste modifié la syntaxe pour enlever le 1er saut de ligne :
Le 'cat -A" c'était justement pour afficher les caractères non-imprimables au cas ou ce seraient eux qui influençaient la non prise en compte des caractères "\n"...
$ cat steph [groups] Adm = [/] @Adm = rw * = $ sed '\|[/]| i'"$1"'R =\n'"$1"'W = \n' steph [groups] Adm = totoR = totoW = [/] @Adm = rw * = $Si ça marche pas je comprends pas pourquoi !? ;-\
Le 'cat -A" c'était justement pour afficher les caractères non-imprimables au cas ou ce seraient eux qui influençaient la non prise en compte des caractères "\n"...
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
8 avril 2008 à 15:51
8 avril 2008 à 15:51
ca ne fonctionne toujours pas
voici le resultat:
[groups]
Adm =
totoR =ntotoW = n
[/]
@Adm = rw
* =
ca fait 4 heures que je cherche, et avec \n ca n'a jamais marché.
soit il ecrit n ou \n mais pas de saut de ligne.
c'est pour cette raison que j'ai essayé ca:
sed -i '/\[\//i\{x;p;x}' /usr/fichier.txt
c'etait sensé ajouter une ligne vierge avant un motif
mais j'obtient le meme resultat : il m'ecrit {x;p;x}
voici le resultat:
[groups]
Adm =
totoR =ntotoW = n
[/]
@Adm = rw
* =
ca fait 4 heures que je cherche, et avec \n ca n'a jamais marché.
soit il ecrit n ou \n mais pas de saut de ligne.
c'est pour cette raison que j'ai essayé ca:
sed -i '/\[\//i\{x;p;x}' /usr/fichier.txt
c'etait sensé ajouter une ligne vierge avant un motif
mais j'obtient le meme resultat : il m'ecrit {x;p;x}
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
8 avril 2008 à 15:56
8 avril 2008 à 15:56
Et comme ça ?
sed '\|[/]| i\ '"$1"'R =\ '"$1"'W =\ ' stephÇa donne quoi ?
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
8 avril 2008 à 15:59
8 avril 2008 à 15:59
ca fonctionne impec
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
8 avril 2008 à 16:49
8 avril 2008 à 16:49
je prend cette solution:
sed -i '/\[\//i\
'"$1"'R =\
'"$1"'W =\
'
celle ci:
sed '\|[/]| i\
'"$1"'R =\
'"$1"'W =\
'
ecrit 2 lignes plusieurs fois dans mon fichier
le plus important: merci de ton aide.
sed -i '/\[\//i\
'"$1"'R =\
'"$1"'W =\
'
celle ci:
sed '\|[/]| i\
'"$1"'R =\
'"$1"'W =\
'
ecrit 2 lignes plusieurs fois dans mon fichier
le plus important: merci de ton aide.