Modificatio contenu de fichier
Fermé
DKAM
-
Modifié par DKAM le 31/03/2016 à 19:48
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 5 avril 2016 à 08:59
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 5 avril 2016 à 08:59
A voir également:
- Modificatio contenu de fichier
- Fichier rar - Guide
- Fichier host - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir fichier .bin - Guide
2 réponses
Utilisateur anonyme
31 mars 2016 à 20:01
31 mars 2016 à 20:01
ligne=`grep -n contenudeligne34 tonfichier | cut -d: -f1`
Ligne contient donc le numéro de la ligne où se trouvent les information devant se trouver en ligne 34
Si lignes > 34 il faut supprimer ligne-34 ligne(s)
Si lignes < 34 il faut ajouter 34-ligne ligne(s)
Pour supprimer les lignes tu peux y aller à coups de sed ou head/tail, pour en ajouter je n'ai pas cherché de manière "propre" mais tu peux faire ceci :
Tu crées un fichier contenant un retour à la ligne (nommons le li)
ajouter une ligne reviens à faire
Tu peux faire passer tout ça dans des boucles for pour ajouter/supprimer le nb de lignes voulues
Ligne contient donc le numéro de la ligne où se trouvent les information devant se trouver en ligne 34
Si lignes > 34 il faut supprimer ligne-34 ligne(s)
Si lignes < 34 il faut ajouter 34-ligne ligne(s)
Pour supprimer les lignes tu peux y aller à coups de sed ou head/tail, pour en ajouter je n'ai pas cherché de manière "propre" mais tu peux faire ceci :
Tu crées un fichier contenant un retour à la ligne (nommons le li)
ajouter une ligne reviens à faire
cat li tonfichier > tmp
mv tmp tonfichier
Tu peux faire passer tout ça dans des boucles for pour ajouter/supprimer le nb de lignes voulues
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
1 avril 2016 à 10:24
1 avril 2016 à 10:24
hello
insère 34 lignes vides avant 60012
insère 34 lignes vides avant 60012
(printf "%.0s\n" {1..34}; sed -n '/60012/,$p' fichier) > fichier2
juuuustement dubcek, cela aurait été plus simple. mais avant la ligne 34 il y a des lignes qui ne sont pas en commentaire, telles que la date de création du fichier, des adresse...(en-tête). qui ne doivent pas être supprimées.
Donc ce sont les lignes vides que je dois supprimer pour que la 1ere ligne commençant par 61202... soit à la ligne 34.
Donc ce sont les lignes vides que je dois supprimer pour que la 1ere ligne commençant par 61202... soit à la ligne 34.
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
Modifié par dubcek le 5/04/2016 à 09:37
Modifié par dubcek le 5/04/2016 à 09:37
il faut seulement supprimer des lignes vides ou faut il aussi en rajouter si 61202 est avant la 34ème ligne ?
essayer ça
affiche les lignes non vides, affiche des lignes vides jusqu'à la ligne 33, puis le reste
essayer ça
affiche les lignes non vides, affiche des lignes vides jusqu'à la ligne 33, puis le reste
awk -v l=34 '/^61202/ {for (n=a; n<l-1; n++)print ""} NF {print; a++}' fichier
31 mars 2016 à 22:20
Avec sed c'est plus simple :
Mais pour en revenir au problème initial, à chercher le numéro de ligne du motif, avec grep ou sed ou autre commande, autant essayer de le faire avec l'application initiale, qui, si elle sait trouver un numéro de ligne, doit être sûrement capable de trouver un motif, non ?
4 avril 2016 à 17:11
4 avril 2016 à 16:52