[UNIX] Découper un fichier par mot clé
Résolu/Fermé
marco.marco
Messages postés
29
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
29 novembre 2013
-
29 nov. 2013 à 10:48
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 29 nov. 2013 à 13:44
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 29 nov. 2013 à 13:44
A voir également:
- Linux découper un fichier texte en plusieurs parties
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
3 réponses
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
Modifié par dubcek le 29/11/2013 à 10:55
Modifié par dubcek le 29/11/2013 à 10:55
hello
tout les AAA vont dans le même fichier ou faut-il un nouveau fichier pour chaque bloc AAA?
tout les AAA vont dans le même fichier ou faut-il un nouveau fichier pour chaque bloc AAA?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
29 nov. 2013 à 11:13
29 nov. 2013 à 11:13
Salut,
Et avec csplit ?
Et avec csplit ?
csplit fichier "/AAA\|BBB/" {*}
marco.marco
Messages postés
29
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
29 novembre 2013
1
29 nov. 2013 à 11:28
29 nov. 2013 à 11:28
Tout simplement !!!
Et moi qui croyait que le split se limitait à un découpage par numéro de ligne uniquement.
Merci !!!!
Et moi qui croyait que le split se limitait à un découpage par numéro de ligne uniquement.
Merci !!!!
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
Modifié par dubcek le 29/11/2013 à 11:17
Modifié par dubcek le 29/11/2013 à 11:17
j'ajoute un nombre pour différencier les AAA
awk '/^[A-Z]/ {f=$1; n++} /^[a-z]/ {print $0 > f "." n}' fichier
marco.marco
Messages postés
29
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
29 novembre 2013
1
29 nov. 2013 à 11:33
29 nov. 2013 à 11:33
Dubcek, j'ai lancé ta commande mais elle ne créé des fichiers ne contenant qu'une seule ligne à savoir le séparateur AAA ou BBB et pas ce qui suit jusqu'au prochain AAA/BBB
ls -rtl
-rw-r--r-- 1 root root 47 nov 29 11:23 AAA.13
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.14
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.15
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.16
-rw-r--r-- 1 root root 45 nov 29 11:23 AAA.17
-rw-r--r-- 1 root root 45 nov 29 11:23 AAA.18
-rw-r--r-- 1 root root 45 nov 29 11:23 AAA.19
-rw-r--r-- 1 root root 45 nov 29 11:23 AAA.20
-rw-r--r-- 1 root root 37 nov 29 11:23 AAA.21
-rw-r--r-- 1 root root 42 nov 29 11:23 AAA.22
-rw-r--r-- 1 root root 45 nov 29 11:23 AAA.23
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.24
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.25
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.26
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.27
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.28
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.29
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.30
-rw-r--r-- 1 root root 44 nov 29 11:23 AAA.31
# cat AAA.13
AAA : test [AIX]
#
De toute facon je vais utiliser le csplit de zipe31 qui marche très bien.
Merci tout de meme :-)
ls -rtl
-rw-r--r-- 1 root root 47 nov 29 11:23 AAA.13
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.14
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.15
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.16
-rw-r--r-- 1 root root 45 nov 29 11:23 AAA.17
-rw-r--r-- 1 root root 45 nov 29 11:23 AAA.18
-rw-r--r-- 1 root root 45 nov 29 11:23 AAA.19
-rw-r--r-- 1 root root 45 nov 29 11:23 AAA.20
-rw-r--r-- 1 root root 37 nov 29 11:23 AAA.21
-rw-r--r-- 1 root root 42 nov 29 11:23 AAA.22
-rw-r--r-- 1 root root 45 nov 29 11:23 AAA.23
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.24
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.25
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.26
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.27
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.28
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.29
-rw-r--r-- 1 root root 46 nov 29 11:23 AAA.30
-rw-r--r-- 1 root root 44 nov 29 11:23 AAA.31
# cat AAA.13
AAA : test [AIX]
#
De toute facon je vais utiliser le csplit de zipe31 qui marche très bien.
Merci tout de meme :-)
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
29 nov. 2013 à 12:21
29 nov. 2013 à 12:21
ah ?
$ awk '/^[A-Z]/ {f=$1; n++} /^[a-z]/ {print $0 > f "." n}' fichier
$ ls A* B*
AAA.1 AAA.2 AAA.5 BBB.3 BBB.4
$ more A* B*
::::::::::::::
AAA.1
::::::::::::::
azerty
uiop
qsdfg
jklm
::::::::::::::
AAA.2
::::::::::::::
qwerty
poiuy
mlkjh
::::::::::::::
AAA.5
::::::::::::::
uiytr
vfrtyu
ffddsf
::::::::::::::
BBB.3
::::::::::::::
wqaze
wwxsdc
retyu
::::::::::::::
BBB.4
::::::::::::::
ertyu
dfuro
$
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
29 nov. 2013 à 13:44
29 nov. 2013 à 13:44
essayer
awk '/^---/ {getline; f=$1 "." ++n; getline} /^[a-z]/ {print $0 > f}' fichier
29 nov. 2013 à 10:59