#26 Le 27/03/2020, à 19:43
- pingouinux
Re : AWK déplacer les lignes d'un fichier vers le bas
Dans la continuité, auriez vous une idée de comment appliquer une commande uniquement sur un bloque de ligne, par exemple uniquement de la ligne 3 à 5
C'est ce que j'ai fait en #23.
Si ça ne convient pas, précise ta demande.
Hors ligne
#27 Le 27/03/2020, à 20:00
- judkil
Re : AWK déplacer les lignes d'un fichier vers le bas
Si j'applique le code suivant
awk 'NR>=3 && NR<=5 {print $2, $1, $3, $4}' input >output
J'aurai ceci :
XXX AB-0008 XXX XXX
XXX A8-0006 XXX XXX
XXX A8-0005 XXX XXX
et non ceci
AB-0007 XXX XXX XXX XXX XXX XXX
AB-0004 XXX XXX XXX XXX XXX XXX
XXX AB-0008 XXX XXX
XXX A8-0006 XXX XXX
XXX A8-0005 XXX XXX
J'essai de garder les premières lignes avec un BEGIN ou en mettant le code proposé dans un END/
Dernière modification par judkil (Le 27/03/2020, à 20:01)
Hors ligne
#28 Le 27/03/2020, à 20:08
- Watael
Re : AWK déplacer les lignes d'un fichier vers le bas
c'est de moins en moins clair : le tri a été effectué sur le fichier entier, qu'est-ce que tu veux faire des lignes 3 à 5 ?
elles ne sont plus, par rapport au fichier original, à la même place.
c'est pas clair.
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#29 Le 27/03/2020, à 20:12
- judkil
Re : AWK déplacer les lignes d'un fichier vers le bas
Voilà mon input
AB-0007 XXX XXX XXX XXX XXX XXX
AB-0004 XXX XXX XXX XXX XXX XXX
AB-0008 XXX XXX XXX
A8-0006 XXX XXX XXX
A8-0005 XXX XXX XXX
et j'aimerai le output suivant:
AB-0007 XXX XXX XXX XXX XXX XXX
AB-0004 XXX XXX XXX XXX XXX XXX
XXX AB-0008 XXX XXX
XXX A8-0006 XXX XXX
XXX A8-0005 XXX XXX
L'idée serait d'appliquer un bloc d'intructions que sur les 3 dernières lignes et garder les premières lignes intactes.
Dernière modification par judkil (Le 27/03/2020, à 20:13)
Hors ligne
#30 Le 27/03/2020, à 20:25
- Watael
Re : AWK déplacer les lignes d'un fichier vers le bas
ah, mais si tu changes les règles du jeu en cours de partie...
nouvelle requête -> nouveau sujet !
bon, puisqu'on y est.
d'abord, rappeler la solution que tu as adoptée pour obtenir ton input
ensuite, on adaptera !
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#31 Le 27/03/2020, à 20:32
- judkil
Re : AWK déplacer les lignes d'un fichier vers le bas
Pour la solution proposée pour le sujet, j'ai utilisé la solution proposée par pingouinux à 11h33 sur ce forum
Si tu as une solution pour le message du 19h12, proposes-la par ce que j'ai l'impression que l'on parle beauucoup beaucouppp
Dernière modification par judkil (Le 27/03/2020, à 20:36)
Hors ligne
#32 Le 27/03/2020, à 20:48
- Watael
Re : AWK déplacer les lignes d'un fichier vers le bas
le problème, pour toi, c'est que l'affichage se fait après la lecture du fichier, dans la clause END.
et puis la solution de pingouinux ne me convient pas car elle manque de souplesse.
donc, je reprend la mienne.
mawk '{ar[-NF,-NR]=$0}END{for(i in ar)if(++n <3)print ar[i]; else { split(ar[i],ar2," "); sub(ar2[1]" "ar2[2]" ","",ar[i]); print ar2[2],ar2[1],ar[i]}}' fichier.txt
AB-0004 XXX XXX XXX XXX XXX XXX
AB-0007 XXX XXX XXX XXX XXX XXX
XXX A8-0005 XXX XXX
XXX A8-0006 XXX XXX
XXX AB-0008 XXX XXX
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#33 Le 27/03/2020, à 21:00
- judkil
Re : AWK déplacer les lignes d'un fichier vers le bas
En awk pas en mawk ! Y a rien de mal à faire simple bien au contraire
Dernière modification par judkil (Le 27/03/2020, à 21:02)
Hors ligne
#34 Le 27/03/2020, à 21:13
- kamaris
Re : AWK déplacer les lignes d'un fichier vers le bas
Ah, mais n'aurait-on pas affaire à un bon gros trollage multi-forums multi-sujets ?
https://www.developpez.net/forums/d2059 … d-fichier/
https://forum.ubuntu-fr.org/viewtopic.php?id=2049896
https://www.developpez.net/forums/d2058 … rs-triant/
https://forum.ubuntu-fr.org/viewtopic.php?id=2049941
https://www.developpez.net/forums/d2058 … e-colonne/
https://forum.ubuntu-fr.org/viewtopic.php?id=2049924
Hors ligne
#35 Le 27/03/2020, à 21:13
- judkil
Re : AWK déplacer les lignes d'un fichier vers le bas
Je vais arreter de répondre ici ! C'est une question de débutant et Watael tu parles beaucoup et tu proposes une solution hyper compliquée ça devient hyper soulant !
Quelqu'un a un proposition pour le message du 19h12 je suis preuneur sinon
Dernière modification par judkil (Le 27/03/2020, à 21:17)
Hors ligne
#36 Le 27/03/2020, à 21:16
- judkil
Re : AWK déplacer les lignes d'un fichier vers le bas
Oui j'ai aussi posé la question sur un autre forum kamaris, car j'ai besoin de la réponse pour travailler mais je ne suis pas un robot y a pas de soucis !
Dernière modification par judkil (Le 27/03/2020, à 21:16)
Hors ligne
#37 Le 27/03/2020, à 21:30
- pingouinux
Re : AWK déplacer les lignes d'un fichier vers le bas
awk '{if(NR>=3 && NR<=5) {print $2, $1, $3, $4} else print}' input >output
Hors ligne
#38 Le 28/03/2020, à 01:03
- Watael
Re : AWK déplacer les lignes d'un fichier vers le bas
oui, mais, pingouinux, cette solution suppose un fichier intermédiaire entre le fichier du #1, et le présent fichier input.
@judkil : non, ce qui est saoulant, c'est les gens qui n'y connaissent rien et qui croient que pour faire un joli paquet on peut utiliser du papier journal et du fil à coudre.
pour ton information, mawk est l'implémentation la plus POSIX de awk, et vu que tu ne peux pas utiliser GNU/awk...
ma solution n'est pas compliquée. tu t'en rendras compte dans quelques mois, s'ils te gardent; mais ça c'est pas gagné avec les a priori* que tu te traînes.
--
*pour rester poli.
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#39 Le 28/03/2020, à 10:33
- pingouinux
Re : AWK déplacer les lignes d'un fichier vers le bas
oui, mais, pingouinux, cette solution suppose un fichier intermédiaire entre le fichier du #1, et le présent fichier input.
C'est exact, mais comme les demandes de judkil changent sans arrêt, j'ai répondu à la dernière, en #29
Hors ligne
#40 Le 28/03/2020, à 14:17
- judkil
Re : AWK déplacer les lignes d'un fichier vers le bas
Merci beaucoup à vous, la solution de pingouinux de 20h30 fontionne très bien !! Maintenant ce post est résolut
Hors ligne