Travailler sur un fichier.txt

Fermé
samsoul92 Messages postés 6 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 19 février 2016 - 18 févr. 2016 à 00:17
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 19 févr. 2016 à 10:00
Bonjour,
Je souhaiterais savoir si quelqu'un peu m'aider dans la réalisation d'un script, permettant de travailler sur un fichier.txt

fichier.txt:
-----------------------------------------------------------------------------
/apps/infocentre/unicenterDSI/dwhexeloa/jcl::/usr/bin/X11:/usr/bin:/etc:/usr/sbin:/usr/ucb/sbin:/usr/java131/jre/bin:/usr/java131/bin:/var/ifor:/usr/opt/ifor/ls/conf:/usr/opt/ifor/ls/os/aix/bin:/usr/ecc/e/usr/bin:/etc:/usr/sbin:/usr/ucbxec:/apps/unicenter/EM/3.1/bin:/apps/unicenter/EM/3.1/cadb/system:/apps/unicenter/EM/3.1/gui/bin:/apps/unicenter/EM/3.1/scripts:/apps/Ca_Shared_Components/bin:/apps/unicenter/EM/3.1/snmp/bin:/apps/unicenter/EM/3.1/tape/scripts:/apps/unicenter/EM/3.1/tape/bin/:/opt/CA/dmscript/bin:/apps/unicenter/AT/3.1/services/bin:/apps/unicenter/AT/3.1/services/tools:/apps/unicenter/AT/3.1/agents/bin:/apps/sys/unicenter/exploitation
___________________________________________________________________

Comme vous pouvez le voir il y a un separateur ":"
comment je faire pour que ce fichier s'affiche comme tel:

NewFichier.txt:
----------------------------------------------------------------
/apps/infocentre/unicenterDSI/dwhexeloa/jcl
/usr/bin
/etc
/usr/sbin
/usr/ucb
/usr/bin/X11
/sbin
/usr/java131/jre/bin
/usr/java131/bin
/var/ifor
/usr/opt/ifor/ls/conf
/usr/opt/ifor/ls/os/aix/bin
-----------------
-----------------
----------------
/apps/sys/unicenter/exploitation
--------------------------------------------------------

C'est a dire qu'a chaque ":" il fait un saut de ligne "\n"

Merci par avance de votre aide?

Cdlt

2 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 18/02/2016 à 03:14
sed -e 's/:/\n/g' fichier.txt > nouveau_fichier.txt


Voir par exemple: sed, a stream editor
Gates gave ^W  sold  you the windows.
GNU gave us the whole house.(Alexandrin)
1
Salut,

Ou plus simplement : Introduction à sed ;-)
0
samsoul92 Messages postés 6 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 19 février 2016
18 févr. 2016 à 09:27
Merci pour le retour mais cette action a été testée elle Ne fonctionne pas
Elle ne fait que remplacer le ":" par "n",
Je pense qu'il faut faire une boucle
0
UnGars > samsoul92 Messages postés 6 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 19 février 2016
18 févr. 2016 à 10:01
Salut,

T'es sûr ?

$ cat fich
/apps/infocentre/unicenterDSI/dwhexeloa/jcl::/usr/bin/X11:/usr/bin:/etc:/usr/sbin:/usr/ucb/sbin:/usr/java131/jre/bin:/usr/java131/bin:/var/ifor:/usr/opt/ifor/ls/conf:/usr/opt/ifor/ls/os/aix/bin:/usr/ecc/e/usr/bin:/etc:/usr/sbin:/usr/ucbxec:/apps/unicenter/EM/3.1/bin:/apps/unicenter/EM/3.1/cadb/system:/apps/unicenter/EM/3.1/gui/bin:/apps/unicenter/EM/3.1/scripts:/apps/Ca_Shared_Components/bin:/apps/unicenter/EM/3.1/snmp/bin:/apps/unicenter/EM/3.1/tape/scripts:/apps/unicenter/EM/3.1/tape/bin/:/opt/CA/dmscript/bin:/apps/unicenter/AT/3.1/services/bin:/apps/unicenter/AT/3.1/services/tools:/apps/unicenter/AT/3.1/agents/bin:/apps/sys/unicenter/exploitation

$ sed 's/:/\n/g' fich
/apps/infocentre/unicenterDSI/dwhexeloa/jcl

/usr/bin/X11
/usr/bin
/etc
/usr/sbin
/usr/ucb/sbin
/usr/java131/jre/bin
/usr/java131/bin
/var/ifor
/usr/opt/ifor/ls/conf
/usr/opt/ifor/ls/os/aix/bin
/usr/ecc/e/usr/bin
/etc
/usr/sbin
/usr/ucbxec
/apps/unicenter/EM/3.1/bin
/apps/unicenter/EM/3.1/cadb/system
/apps/unicenter/EM/3.1/gui/bin
/apps/unicenter/EM/3.1/scripts
/apps/Ca_Shared_Components/bin
/apps/unicenter/EM/3.1/snmp/bin
/apps/unicenter/EM/3.1/tape/scripts
/apps/unicenter/EM/3.1/tape/bin/
/opt/CA/dmscript/bin
/apps/unicenter/AT/3.1/services/bin
/apps/unicenter/AT/3.1/services/tools
/apps/unicenter/AT/3.1/agents/bin
/apps/sys/unicenter/exploitation
0
samsoul92 Messages postés 6 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 19 février 2016
18 févr. 2016 à 10:21
Je pense que cela dépend de l'environnent sur lequel on est :
Tu peux voir que cela ne fonctionne pas:

PARVA4000627 => PROD ATLAS 2 ANTILLES - GUYANE SFDI (l348902)
/home/l348902$ sed 's/:/\n/g' fichier.txt

/apps/exploit/outilsiten/apps/atlas/atlas2v0/uf1/site/outilsn/apps/atlas/atlas2v0/uf1/site/jcln/apps/atlas/atlas2v0/uf1/site/jobsetn/apps/cft/fildat/../ifcftn/home/atlasn/apps/convert/jclsiten/apps/convert/jcln/apps/convert/jobsetn/apps/orion/031/uf1/site/jcln/apps/orion/031/uf1/site/jobsetn/apps/orion/031/uf1/jobsetsiten/apps/orion/031/uf1/jclsiten/apps/orion/031/uf1/jcln/apps/orion/031/uf1/jobsetn/apps/ptcom/015/uf1/site/jcln/apps/ptcom/015/uf1/site/jobsetn/apps/ptcom/015/uf1/jobsetsiten/apps/ptcom/015/uf1/jclsiten/apps/ptcom/015/uf1/jcln/apps/ptcom/015/uf1/jobsetn/apps/basfi/020/uf1/site/jcln/apps/basfi/020/uf1/site/jobsetn/apps/basfi/020/uf1/jobsetsiten/apps/basfi/020/uf1/jclsiten/apps/basfi/020/uf1/jcln/apps/basfi/020/uf1/jobsetn/apps/evatl/003/uf1/site/jcln/apps/evatl/003/uf1/site/jobsetn/apps/evatl/003/uf1/jobsetsiten/apps/evatl/003/uf1/jclsiten/apps/evatl/003/uf1/jcln/apps/evatl/003/uf1/jobsetn/apps/sonar/020/uf1/site/jcln/apps/sonar/020/uf1/site/jobsetn/apps/sonar/020/uf1/jobsetsiten/apps/sonar/020/uf1/jclsiten/apps/sonar/020/uf1/jcln/apps/sonar/020/uf1/jobsetn/apps/atlas/atlas2v0/uf1/site/outilsn/apps/atlas/atlas2v0/uf1/site/jcln/apps/atlas/atlas2v0/uf1/site/jobsetn/apps/atlas/atlas2v0/uf1/jobsetn/apps/atlas/atlas2v0/uf1/jclsiten/apps/atlas/atlas2v0/uf1/jcln/apps/exploit/outilsoran/apps/exploit/outilsn/apps/exploit/exploitv3n/usr/binn/etcn/usr/sbinn/usr/ucbn/usr/bin/X11n/sbinn/usr/java131/jre/binn/usr/java131/binn/apps/unicenter/EM/3.1/binn/apps/unicenter/EM/3.1/cadb/systemn/apps/unicenter/EM/3.1/gui/binn/apps/unicenter/EM/3.1/scriptsn/apps/unicenter/EM/3.1/snmp/binn/apps/unicenter/EM/3.1/tape/scriptsn/apps/unicenter/EM/3.1/tape/bin/n/apps/exploit/outils/webkixn/apps/amelia/outilsn/apps/exploit/tngn/apps/exploit/outils/livraisonsn/apps/atlas/atlas2v0/uf1/tipsbinn/apps/atlas/atlas2v0/uf1/scriptsn/apps/oracle/product/920/binn/apps/xrdj/v1.1/RM_fil//binn/apps/xrdj/v1.1/RM_fil//confn/usr/includen/usr/include/sysn/apps/syncsort/3.11/binn/apps/cobol/sx4.0/binn/apps/unikix/t8.1.0p11n/apps/unikix/t8.1.0p11/binn/apps/unikix/t8.1.0p11/kixcli/binn/apps/webkix/webcli/binn/usr/java14/jre/binn/usr/java14/binn.n/apps/cft/filexen/apps/cft/filusrn/apps/cft/filexitn/apps/cft/filapin/apps/exploit/shelln/apps/exploit/shell/gestion


Par contre vi la commande ci-dessous ca a l'air d'etre correct:

PARVA4000627 => PROD ATLAS 2 ANTILLES - GUYANE SFDI (l348902)
/home/l348902$ tr ":" "\n" < patern.txt

/apps/exploit/outilsite
/apps/atlas/atlas2v0/uf1/site/outils
/apps/atlas/atlas2v0/uf1/site/jcl
/apps/atlas/atlas2v0/uf1/site/jobset
/apps/cft/fildat/../ifcft
/home/atlas
/apps/convert/jclsite
/apps/convert/jcl
/apps/convert/jobset
/apps/orion/031/uf1/site/jcl
/apps/orion/031/uf1/site/jobset
/apps/orion/031/uf1/jobsetsite
/apps/orion/031/uf1/jclsite
/apps/orion/031/uf1/jcl
/apps/orion/031/uf1/jobset
/apps/ptcom/015/uf1/site/jcl
/apps/ptcom/015/uf1/site/jobset
/apps/ptcom/015/uf1/jobsetsite
/apps/ptcom/015/uf1/jclsite
/apps/ptcom/015/uf1/jcl
/apps/ptcom/015/uf1/jobset
/apps/basfi/020/uf1/site/jcl
/apps/basfi/020/uf1/site/jobset
/apps/basfi/020/uf1/jobsetsite
/apps/basfi/020/uf1/jclsite
/apps/basfi/020/uf1/jcl
/apps/basfi/020/uf1/jobset
/apps/evatl/003/uf1/site/jcl
/apps/evatl/003/uf1/site/jobset
/apps/evatl/003/uf1/jobsetsite
/apps/evatl/003/uf1/jclsite
/apps/evatl/003/uf1/jcl
/apps/evatl/003/uf1/jobset
/apps/sonar/020/uf1/site/jcl
/apps/sonar/020/uf1/site/jobset
/apps/sonar/020/uf1/jobsetsite
/apps/sonar/020/uf1/jclsite
/apps/sonar/020/uf1/jcl
/apps/sonar/020/uf1/jobset
/apps/atlas/atlas2v0/uf1/site/outils
/apps/atlas/atlas2v0/uf1/site/jcl
/apps/atlas/atlas2v0/uf1/site/jobset
/apps/atlas/atlas2v0/uf1/jobset
/apps/atlas/atlas2v0/uf1/jclsite
/apps/atlas/atlas2v0/uf1/jcl
/apps/exploit/outilsora
/apps/exploit/outils
/apps/exploit/exploitv3
/usr/bin
/etc
/usr/sbin
/usr/ucb
/usr/bin/X11
/sbin
/usr/java131/jre/bin
/usr/java131/bin
/apps/unicenter/EM/3.1/bin
/apps/unicenter/EM/3.1/cadb/system
/apps/unicenter/EM/3.1/gui/bin
/apps/unicenter/EM/3.1/scripts
/apps/unicenter/EM/3.1/snmp/bin
/apps/unicenter/EM/3.1/tape/scripts
/apps/unicenter/EM/3.1/tape/bin/
/apps/exploit/outils/webkix
/apps/amelia/outils
/apps/exploit/tng
/apps/exploit/outils/livraisons
/apps/atlas/atlas2v0/uf1/tipsbin
/apps/atlas/atlas2v0/uf1/scripts
/apps/oracle/product/920/bin
/apps/xrdj/v1.1/RM_fil//bin
/apps/xrdj/v1.1/RM_fil//conf
/usr/include
/usr/include/sys
/apps/syncsort/3.11/bin
/apps/cobol/sx4.0/bin
/apps/unikix/t8.1.0p11
/apps/unikix/t8.1.0p11/bin
/apps/unikix/t8.1.0p11/kixcli/bin
/apps/webkix/webcli/bin
/usr/java14/jre/bin
/usr/java14/bin
.
/apps/cft/filexe
/apps/cft/filusr
/apps/cft/filexit
/apps/cft/filapi
/apps/exploit/shell
/apps/exploit/shell/gestion
__________________________________________

Une autre facon de faire:
awk -F ":" '{ for(i=1;i<=NF;i++) { print $i; } }'

_____________________________________
ou encore:
OLDIFS=$IFS
IFS=":"
for ligne in $(cat patern.txt)
do
echo $ligne
done
IFS=$OLDIFS
0
UnGars > samsoul92 Messages postés 6 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 19 février 2016
18 févr. 2016 à 10:44
Je pense que cela dépend de l'environnent sur lequel on est
Et sous quel environnement es-tu ?

Essaye avec :
sed 's/:/\x0a/g'
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
18 févr. 2016 à 10:19
hello
tr ':' '\n' < fichier.txt
1