Travailler sur un fichier.txt

samsoul92 Messages postés 6 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    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
    1. samsoul92 Messages postés 6 Statut Membre
       
      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
    2. UnGars > samsoul92 Messages postés 6 Statut Membre
       
      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
    3. samsoul92 Messages postés 6 Statut Membre
       
      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
    4. UnGars > samsoul92 Messages postés 6 Statut Membre
       
      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
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    tr ':' '\n' < fichier.txt
    1