QUestion sur sed et awk
Fermé
enzo
-
11 déc. 2003 à 09:51
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 11 déc. 2003 à 16:50
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 11 déc. 2003 à 16:50
A voir également:
- QUestion sur sed et awk
- Remplacez le mot sed par le mot mais dans tout le texte. combien de caractères contient le document suite à cette modification (en incluant les espaces) ? - Guide
- Sed - Remplacement texte par retour à la ligne ? ✓ - Forum Linux / Unix
- Sed crlf - Astuces et Solutions
- Sed et ses caprices (ou les miens) ✓ - Forum Linux / Unix
- Comptage des caractères dans Word ✓ - Forum Word
7 réponses
voici la reponse :
NUMERO_LIGNE=$(less $NomFichier | grep -n Attachement | awk 'BEGIN {FS=":";} {print $1;}')
less $NomFichier | sed 's/^V@//g' | sed "1,$NUMERO_LIGNE d" >>liste_des_fichiers_attach.tmp
@+
NUMERO_LIGNE=$(less $NomFichier | grep -n Attachement | awk 'BEGIN {FS=":";} {print $1;}')
less $NomFichier | sed 's/^V@//g' | sed "1,$NUMERO_LIGNE d" >>liste_des_fichiers_attach.tmp
@+
il faut que tu fasse un programme shell/perl ou autre
du style
en shell:
#!/bin/bash
# ton shebang eventuel
flag=0
while read line
do
if [ "$line" ne "attachment" ] ; then
flag=1
fi
if [ flag eq 1 ]; then
echo "$line" > sortie
fi
done < monfichier
bon c'est simple mais pas efficase si tes fichiers sont enormes
le perl peut etre plus adapte.
en awk ca doit pouvoir se programmer le plus simple c'est encore
de se procurer un Oreilly bash ou awk ou une doc du net.
Bonne chance.
du style
en shell:
#!/bin/bash
# ton shebang eventuel
flag=0
while read line
do
if [ "$line" ne "attachment" ] ; then
flag=1
fi
if [ flag eq 1 ]; then
echo "$line" > sortie
fi
done < monfichier
bon c'est simple mais pas efficase si tes fichiers sont enormes
le perl peut etre plus adapte.
en awk ca doit pouvoir se programmer le plus simple c'est encore
de se procurer un Oreilly bash ou awk ou une doc du net.
Bonne chance.
a propose des expressions reg j'ai jamais reussi
a faire un regex sur des lignes multiples
j'ai un programme en perl qui permet de le faire
mais c'est toujours sur une detection type flag
while ligne
if (ligne = ^(attchment) )
flag=1......
mail moi si ca t'interesse
a faire un regex sur des lignes multiples
j'ai un programme en perl qui permet de le faire
mais c'est toujours sur une detection type flag
while ligne
if (ligne = ^(attchment) )
flag=1......
mail moi si ca t'interesse
cat fichier | sed "/attachement/,\$ w autre.fic"
tu peux meme faire de chaine1 a chaine2
sed "/chaine1/,/chaine2/w toto"
tu peux meme faire de chaine1 a chaine2
sed "/chaine1/,/chaine2/w toto"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut
Si les données sont dans le fichier toto faire ce qui suit :
ed -s >/dev/null <<!fin
r toto
/^attachement
-1
1,.d
w
q
!fin
Au final, on a supprimé du fichier toto, tout ce qui précède attachement
BOn courage
Si les données sont dans le fichier toto faire ce qui suit :
ed -s >/dev/null <<!fin
r toto
/^attachement
-1
1,.d
w
q
!fin
Au final, on a supprimé du fichier toto, tout ce qui précède attachement
BOn courage
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
11 déc. 2003 à 14:45
11 déc. 2003 à 14:45
Salut à tous,
Bon pour aller au plus court:
tac:
Comme cat, mais en commencant par la fin du fichier (ca peut etre trés utile)
awk '/attachment:/ {exit}; {print $1}':
on se branche sur la sortie standard de tac, si l'on trouve "attachement:" on sort, sinon on affiche la ligne :)
Voili voilou, @++
Bon pour aller au plus court:
tac ton_fichier | awk '/attachment:/ {exit}; {print $0}'
tac:
Comme cat, mais en commencant par la fin du fichier (ca peut etre trés utile)
awk '/attachment:/ {exit}; {print $1}':
on se branche sur la sortie standard de tac, si l'on trouve "attachement:" on sort, sinon on affiche la ligne :)
Voili voilou, @++
"Si c'est stupide et que ça marche, alors ce n'est pas stupide"
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
11 déc. 2003 à 16:50
11 déc. 2003 à 16:50
et le plus simple
sed -ne '/^attachment/,$ p' tonfichier |tail +2
élimine éventuellement les occurences supplémentaires de attachment avev grep -v ...)
Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
sed -ne '/^attachment/,$ p' tonfichier |tail +2
élimine éventuellement les occurences supplémentaires de attachment avev grep -v ...)
Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.