Extraction de plusieurs lignes avec shell [Fermé]

Signaler
-
 anis_tel -
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

5 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 836
recuperer tout les lignes entre le debut et la fin
sed  -n '/^Cacert::/,/==$/p'
;-))
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
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
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 836
Salut,
sed -n '22,29p' fichier
,-))
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
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 836
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.
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
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 522
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
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 836
Oui, ou encore avec des doubles quotes :
sed -n "$a,5p"
Merci lami20j ;-))
>
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020

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 ;-(
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 522 > anis_tel
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
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 522
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==