Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1377 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [ sed ] passer un substitute de vi vers sed

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ sed ] passer un substitute de vi vers sed

n°589191
tuxy_co_ps​ylo
Mangez-Moi !! <8-)
Posté le 12-11-2004 à 00:14:54  profilanswer
 

voila je voudrai par exemple editer le fichier /etc/services et recupere  le port d'un service préciser sur la sortie standard
dans vi j'ai reussi a l'aide de %s/// de faire ce que je veux sur la ligne mais en passant a sed j'y arrive pas afficehr le resultat de la meme expression
 

Citation :

$cat /etc/services | sed -e s/^ssh.*\([0-9]\{2,\}\).tcp.*$/\1

 
 le s//\1 est tout droit sorti de vi mais j'ai ca comme erreur
 

Citation :

sed: -e expression n°1, caractère 28: Commande `s' inachevée


 
et aussi je sais que -i permet de spécifier un fichier, rendant le cat inutile
 
merci d'avance

mood
Publicité
Posté le 12-11-2004 à 00:14:54  profilanswer
 

n°589228
cymcy
Posté le 12-11-2004 à 06:24:44  profilanswer
 

je lis :
dans vi j'ai reussi a l'aide de %s/// de faire ce que je veux
 
et je lis :
s/^ssh.*\([0-9]\{2,\}\).tcp.*$/\1
 
pourquoi tu termine pas la commande? "s///"
il te manque un / non ? ( idée : a la fin de la ligne par exemple )

n°589318
tuxy_co_ps​ylo
Mangez-Moi !! <8-)
Posté le 12-11-2004 à 11:47:41  profilanswer
 

heu j'avoue que c'est vraiment pas bete.. auto-flagellation pour moi !!
n'empeche que ca marche toujours pas il ne m'affiche aucun changement sur la ligne.. j'essaye avec un fichier ne contenant que la ligne, mais rien n'y fait je n'arrive pas a avoir juste 22 en sortie...

n°589354
cymcy
Posté le 12-11-2004 à 13:03:48  profilanswer
 

#! /bin/sh
cat /etc/services | grep $1 | cut -f3 | cut -d "/" -f1
 
un script sed est possible si tu veux vraiment mais ces $&ùé"é de tab sont dérangeants.

n°589396
tuxy_co_ps​ylo
Mangez-Moi !! <8-)
Posté le 12-11-2004 à 13:38:23  profilanswer
 

wai ta soluce est pas mal mais bon c'est pas drole a faire alors que y'a un moyen de tout farie avec une expression reguliere et un sed...
ps. j'avais deja demander de l'aide pour le meme exemple et on m'avais donné une réponse similaire a la tienne mais la j'essaye de bien comprendre les regexp
voila ce que j'ai pour l'instant  

Citation :

sed -e 's#^ssh.*\([0-9]\{2,\}\).*tcp.*$#\1#' /etc/services


 
m'affiche tout le fichier /etc/services mais change la ligne :
ssh         22/tcp          # ssh login  
 en
22
 
mais par contre je ne sais si il est possible d'avoir en sortie seulement la ou les ligne modifiées


Message édité par tuxy_co_psylo le 12-11-2004 à 14:14:12
n°589581
tuxy_co_ps​ylo
Mangez-Moi !! <8-)
Posté le 12-11-2004 à 16:19:37  profilanswer
 

c'est bon j'ai trouvé: option -n avec /p comme flag ca donne
 

Citation :


$sed -n -e 's/^ssh.*\([0-9]\{2,\}\).*tcp.*$/\1/p' /etc/services
 
22


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [ sed ] passer un substitute de vi vers sed

 

Sujets relatifs
MAJ d'une MDK 10.1 community vers la finale : plus de souris USB.[Sendmail]bloquer les mails qui se font passer pour de linterne
Pb de config de serveur DNS sur un LAN pour le passer ensuite sur WAN?Découper fichier 4.4 Go pour tansfert depuis Linux vers Fat32
[Debian Sid] comment passer de devfs à udevPing vers une ancienne ip , Cache dns ??
Passer de Solaris à AIXPasser d'un graveur CD à un graveur DVD. (MDK 10)
Cable serie PC (ou AMIGA) vers PX-8 EPSONVersion hyper lite le linux pr faire des copie CD vers DD ??
Plus de sujets relatifs à : [ sed ] passer un substitute de vi vers sed


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR