KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Dimanche 18 mai 2008 - 00:51:36

Extraction de plusieurs lignes avec shell

Rechercher : dans
extraction de plusieurs lignes avec shell
par anis_tel
 Fil de Discussions
Statut : Non résolu
dimanche 13 mai 2007 à 21:50:41
salut a tous
je programme un script shell
et je voulai extraire plusieurs lignes successive
par exemple de ligne 22 à la ligne 29 d'un fichier de 44 lignes
merci de m'avoir aider
Configuration: fedora 4
Répondre à anis_tel  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le dimanche 13 mai 2007 à 22:04:03 Fil de Discussions
Salut,
sed -n '22,29p' fichier
,-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par anis_tel, le dimanche 13 mai 2007 à 22:58:49 Fil de Discussions
merci pour votre aide

voila le fichier
::::::::::::::::::::::::::::::::::::::::::::::::::::
aazezer++ frezdsfggerghedtghghetyhy
tgergdfjotgerktlerotjhktgsrlkdgdlsfkg
gdsgs gdgdf ergerg greg gerghrtghrtth
gergdfgdfg rgertgdegde gergerger==
gdfgdgbvdfgbdfgdf,gdfgdfgdfgdf;gdf
::::::::::::::::::::::::::::::::::::::::::::::::::::::
je veux eliminer les caractere avant ++
puis mettre le résultat entre deux lignes d'un autre fichier
merci
Répondre à anis_tel

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le dimanche 13 mai 2007 à 23:16:55 Fil de Discussions
Re-

je veux eliminer les caractere avant ++
sed 's/.*++ //' fich > plop
puis mettre le résultat entre deux lignes d'un autre fichier
sed -i.bak '/motif/r plop' fichier
Ajoute le fichier "plop" (commande "r" pour "read") après la ligne contenant "motif" dans le fichier "fichier". L'option "-i.bak" crée une sauvegarde du fichier original.
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par anis_tel, le lundi 14 mai 2007 à 00:48:36 Fil de Discussions
mercie bien
le probleme rencontrer c'est que les lignes à extraire peut etre repeter dans le fichier mais il non pas le meme contenue malgré qu'il ont le meme debut (Cacert::)et la meme fin(==)
alors je veut recuperer tout les lignes entre le debut et la fin et les mettre chacun dans un fichier independant
*************************************************
Cacert:: jkyhniuybytbyutnuitynuy,iu,
,iuy,iuy,oiu;utgnrtbrtfrbtfr
uyntybyrbvtrbrt,i==
rtvetyvbuyniu,oiuiu
trbrtvrtcvrcr
Cacert:: yytyiuooiuoiu,oiopi,gnfff
dertvezrtvevtrte
revtrertevrterevr==
tyevrevretyrtv
****************************************
Mercie bien de m'aider
Répondre à anis_tel

5


  • 5
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le lundi 14 mai 2007 à 09:48:58 Fil de Discussions
recuperer tout les lignes entre le debut et la fin
sed  -n '/^Cacert::/,/==$/p'
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par anis_tel, le lundi 14 mai 2007 à 20:55:26 Fil de Discussions
merci de m'aider
ca na pas marcher "recuperer tout les lignes entre le debut et la fin
sed -n '/^Cacert::/,/==$/p' "
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
merci une autre fois ;)

sed -n '$a,29p' fichier

elle ne donne pas de resultat

avec a=24 qui est un numeros d'une ligne extrait par : a=` cut -d: -f1 fich `

merci de m'aider
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Répondre à anis_tel

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par anis_tel, le dimanche 20 mai 2007 à 13:54:45 Fil de Discussions 
Salut merci de vos conseil

Je cherche a retarder l'execution d'une fonction sans que ça bloque
l'ensemble de mon script (comme le fait un sleep)?

Merci d'avance
Répondre à anis_tel

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par lami20j, le lundi 14 mai 2007 à 21:08:44 Fil de Discussions
Salut

pour sed -n '$a,29p' fichier

elle ne donne pas de resultat

essaie
lami20j@debian:~/trash$ cat fichier
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
ligne 10
lami20j@debian:~/trash$ echo $a
2
lami20j@debian:~/trash$  sed -n $a',5p' fichier
ligne 2
ligne 3
ligne 4
ligne 5
lami20j
Répondre à lami20j

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le lundi 14 mai 2007 à 22:50:06 Fil de Discussions
Oui, ou encore avec des doubles quotes :
sed -n "$a,5p"
Merci lami20j ;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par anis_tel, le mardi 15 mai 2007 à 12:43:20 Fil de Discussions
merci a tous

je veux parcourir un fichier FICH pour extraire les numéros des lignes
des meme phrases (XXX) cad :

****************************
FICH
XXXazozozpzozpopoapzopzopao <-------------
XXXauazoz,oiz,zoizomiomaoapap <--------------
oziozozizoaoizjhdhdhdj
djijkjhdhduizhdbh
XXXoieyfnyuieyrufy <----------------
********************************
et mettre ces numeros qui sont (1,2,5) chaqu'un dans un fichier

**************************************************
je veux connettre comment realiser un boucle dans un shell
exemple (algorithmique)

for i=(numeros ou caractere) to (numeros ou caractere)
do .........
********************
comment comparer le contenus de deux fichiers
********************
Merci a tous ;-(
Répondre à anis_tel

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par lami20j, le mardi 15 mai 2007 à 12:53:40 Fil de Discussions
Salut,

il y a des commandes pour faire ça
si tu veux apprendre des algorithme alors essaie de trouver un bon cours

dans ton cas tu peux faire une boucle que va incrementer un compteur

Voilà pour ton algo
i = 0
Tant qu'on n'est pas à la fin de fichier
   si la ligne commence avec XXX
     affiche " i+1 ligne"
   sinon
     affiche "ligne"
   On increment i (i = i + 1)
Fin Boucle

comment comparer le contenus de deux fichiers
man diff
lami20j
Répondre à lami20j

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par lami20j, le lundi 14 mai 2007 à 21:13:21 Fil de Discussions
ca na pas marcher "recuperer tout les lignes entre le debut et la fin
sed -n '/^Cacert::/,/==$/p' "


Ben, ça marche
Le problème ce n'est pas la commande mais les lignes ou plutôt le groupe des lignes (je ne peux pas dire paragraphe) ou la façon dont tu poses la question

la commande extrait tout entre
Cacert:: et ==
si tu regarde ton fichier tu as
Cacert:: jkyhniuybytbyutnuitynuy,iu,
,iuy,iuy,oiu;utgnrtbrtfrbtfr
uyntybyrbvtrbrt,i==
rtvetyvbuyniu,oiuiu
trbrtvrtcvrcr
Cacert:: yytyiuooiuoiu,oiopi,gnfff
dertvezrtvevtrte
revtrertevrterevr==
tyevrevretyrtv 
donc le résultat est correct
lami20j@debian:~/trash$ cat fichier
Cacert:: jkyhniuybytbyutnuitynuy,iu,
,iuy,iuy,oiu;utgnrtbrtfrbtfr
uyntybyrbvtrbrt,i==
rtvetyvbuyniu,oiuiu
trbrtvrtcvrcr
Cacert:: yytyiuooiuoiu,oiopi,gnfff
dertvezrtvevtrte
revtrertevrterevr==
tyevrevretyrtv
lami20j@debian:~/trash$ sed -n '/^Cacert::/,/==$/p' fichier
Cacert:: jkyhniuybytbyutnuitynuy,iu,
,iuy,iuy,oiu;utgnrtbrtfrbtfr
uyntybyrbvtrbrt,i==
Cacert:: yytyiuooiuoiu,oiopi,gnfff
dertvezrtvevtrte
revtrertevrterevr==

lami20j
Répondre à lami20j
Discussions pertinentes trouvées dans le forum
26/02 10h03Shell compter caractère de chaque ligneLinux/Unix26/02 11h5517
22/02 12h23Shell, tester une ligne dans une boucle IFLinux/Unix24/03 18h4515
22/01 19h50[shell] fin de ligneProgrammation23/01 10h556
21/01 19h14Shell (parser ligne de commande)Linux/Unix21/01 20h296
Plus de discussions sur « extraction de plusieurs lignes avec shell » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide