Bayrouni a écrit, jeudi 29 juin 2006, à 13:37 :
[...]
Que demander de plus :)
Une solution Sed, bien sûr :)
sed -ne '/./{p;:a;n;/./ba}' fichier
sed -ne '/./{ # si une ligne est non-vide
p # on écrit
:a
n # puis on avale les non-vides suivantes en boucle...
/./ba
}'
--
sed -ne '/./{p;:a;n;/./ba}' fichier
joli ! il y a donc des choses a faire avec sed ! :)
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:
To UNSUBSCRIBE, email to
Marc Chantreux a écrit :
sed -ne '/./{p;:a;n;/./ba}' fichier
joli ! il y a donc des choses a faire avec sed ! :)
J'ai essayé toutes les propositions, et comme mon fichier
est effectivement voluminueux j'ai adopté celle-là:
awk ' { if ( old==) { print }; old=$0 }' fichier
Mais je suis
Bayrouni a écrit, lundi 3 juillet 2006, à 17:29 :
[...]
Mais je suis intrigué par la solution sed que je
m'efforcerai à decrypter :)
Je suis sur une doc à cette adresse:
http://www.gnu.org/software/sed/manual/html_mono/sed.html
Il y a aussi http://sed.sf.net/, avec beaucoup d'exemples.
Jacques L'helgoualc'h a écrit :
C'était simple ! Il faut reconnaître que Awk est plus lisible.
Oui, je le reconnais, awk était plus lisible, mais après
initiation on voit plus clair en général.
J'ai lu un peu de sed dans les generalités et dans le
contexte de ma question, et je
ça marche pô, car il affiche des lignes vides si il y a + de 2 lignes
vides qui se suivent...
---
salut,
en bash :
while old=$line read line; do
test -z $old echo $line
done fichier
par contre : si ton fichier est gros, il vaut mieux utiliser awk :
awk ' {
Gilles MISSONNIER wrote:
ça marche pô, car il affiche des lignes vides si il y a + de 2 lignes
vides qui se suivent...
la réponse est dans la question :)
while old=$line read line; do
test -z $old test -n $line echo $line
done fichier
awk ' { if ( old== $0 != ) { print }; old=$0
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
[EMAIL PROTECTED]:~$ perl -ne 'print if ($a!=1 !m/^$/); $a=1; $a=0 if
(m/^$/)' /tmp/test
fichier1
fichier4
fichier12
Autre solution, avec awk :
cat fichier | awk 'BEGIN {fl=1 ; p=0} {if (fl == 1 $1 != ) {print
$1 ; fl=0 ; p=0} else {if (p ==
salut,
en zsh :
while { old=$line read line } {
[[ -z $old ]] print $line
} fichier
en bash :
while old=$line read line; do
test -z $old echo $line
done fichier
par contre : si ton fichier est gros, il vaut mieux utiliser awk :
awk ' { if ( old==) { print }; old=$0
Merci à vous tous,
En plus d'avoir trouvé la solution grâce à vous, et comme
c'est quasiment tout le temps avec GNU/Linux, il y a
plusieurs manières de procéder. Donc pour moi, ce sont des
solutions et des enrichissements.
J'ai déjà regarder la soltion avec cat, grep et tr.
Idem avec la
Bonsoir,
J'ai un fichier contenant des groupes de lignes, les groupes
étant séparés entre eux par une ligne vide.
Voici un exemple:
fichier1
fichier2
fichier3
fichier4
fichier23
fichier12
fichier442
fichier388
fichier543
Comment faire en bash pour ne retenir que la première ligne
de
Bonsoir,
J'ai un fichier contenant des groupes de lignes, les groupes
étant séparés entre eux par une ligne vide.
Voici un exemple:
fichier1
fichier2
fichier3
fichier4
fichier23
fichier12
fichier442
fichier388
fichier543
Comment faire en bash pour ne retenir que la première ligne
de chaque
Le mercredi 28 juin 2006 22:42, Bayrouni a écrit :
Bonsoir,
J'ai un fichier contenant des groupes de lignes, les groupes
étant séparés entre eux par une ligne vide.
Voici un exemple:
fichier1
fichier2
fichier3
fichier4
fichier23
fichier12
fichier442
fichier388
fichier543
2006/6/28, Bayrouni [EMAIL PROTECTED]:
J'ai un fichier contenant des groupes de lignes, les groupes
étant séparés entre eux par une ligne vide.
Voici un exemple:
fichier1
fichier2
fichier3
fichier4
fichier23
fichier12
fichier442
fichier388
fichier543
Comment faire en bash pour ne retenir
Le jeudi 29 Juin 2006 01:15, Max a écrit :
cat fichier | grep -A 1 '^$' | tr -d '\-' | grep -v '^$'
Manquera la premiere chaine de caractère !
dans :
fichier1
fichier2
fichier3
fichier4
fichier5
Affichera :
fichier3
fichier5
Le 29/06/06, laurent besson[EMAIL PROTECTED] a écrit :
Le jeudi 29 Juin 2006 01:15, Max a écrit:
cat fichier | grep -A 1 '^$' | tr -d '\-' | grep -v '^$'
Manquera la premiere chaine de caractère !
dans :
fichier1
fichier2
fichier3
fichier4
fichier5
Affichera :
fichier3
fichier5
oui
16 matches
Mail list logo