Script sous Unix

Natacha -  
jisisv Messages postés 3678 Statut Modérateur -
Bonjour,

Je suis vraiment débutante sous Unix et j'aimerai créer un script Unix mais malheureusement j'y comprends rien.
Voici ma question:
Comment créer un script qui me permettrai de remplacer dans un fichier ascii tous les caractères ";" par des "espace". Vous allez me dire facile, il existe une commande "remplacer" dans le menu mais je voudrais qu'un script le fasse pour un nbre important de fichiers placés dans un même répertoire et qu'il m'enregistre les fichiers modifiés dans ce même répertoire. Connaissez-vous un script proche de celui ci qui pourrait m'aider.

Merci d'avance

Nat
A voir également:

11 réponses

jisisv Messages postés 3678 Statut Modérateur 935
 
Quelques précisions:

Ceci peut résumer la situation
johand@horus:~/src/bash$ cat > bidon
#! /bin/sh
cat | tr ";" " "
^D
johand@horus:~/src/bash$ chmod +x semicol2space
johand@horus:~/src/bash$ cat bidon
ab;cd
efg;hij;
;toto
johand@horus:~/src/bash$ ./semicol2space < bidon
ab cd
efg hij_
_toto
# _ représente ici un espace en début ou fin de chaîne

Tu as donc créé un filtre "semicol2space" qui transforme l'entrée
standard et l'expédie vers stdout (la console par défaut
L'extension de l'exécutable n'a aucune importance dans les UNICES.
Ton fichier semicol2space doit
-être exécutable (sauf utilisaton de la commande interne "." ou source)
-référencer l'interpréteur de commande (ici /bin/sh)
dans la ligne bang (commençant par #!)
johand@horus:~/src/bash$ file /bin/sh
/bin/sh: symbolic link to `bash'
qui est un lien symbolique vers bash

Bon, tu intègres le corps du fichier dans ton script/tu en fais une fonction bash/....

Il est sous-entendu que tu utilises bash comme interpréteur .
CU later

Johan
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
2
grofwa Messages postés 440 Statut Membre 479
 
Salut

Essaie ceci :
cat fichier_ascii | tr ";" " "

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
Natacha
 
Quelle doit être l'extension d'un fichier script?
0
Natacha
 
Bonjour jisisv,

Je vais passer pour une bonne à rien mais je voulais comprendre ce que tu as écrit (tu as l'air très bon!!!). Je dois replacer quoi oar quoi? Mon repertoire ou se trouve mes fichiers ascii à modifier est /users/natacha/test. Mes fichiers sont des txt.

Désolé de poser toutes ces questions mais ce petit script va vraiment m'aider.

Encore merci

Nat
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Natacha
 
Quelle est la ligne de commande pour lancer le script en question?
0
jisisv Messages postés 3678 Statut Modérateur 935
 
A quoi ta commande "remplacer" fait elle référence?
As-tu une bonne maîtrise (lue of course) de l'anglais?
Ta question est-elle extraîte d'un TP?
....

Johan

Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
0
jisisv Messages postés 3678 Statut Modérateur 935
 
A quoi ta commande "remplacer" fait elle référence?
As-tu une bonne maîtrise (lue of course) de l'anglais?
Ta question est-elle extraite d'un TP?
....
Si tu connais les extensions des fichiers (txt inf)

Un truc basique; pas testé...

for myfile in $(find . -maxdepth 1 -type f -name "*txt" -or -name "*inf") ;
do
semicol2space < $file > ${file}.new
done

exksplikacionz:

-maxdepth limite les recherches à un niveau dans l'arborescence
(donc le répertoire courant)
-name extensions des fichiers
-or ou inclusif
-for regarde bash help for
- < redirection de $file vers l'entrée standard
- > redirection de l'output vers le fichier ${file}.new
J'utilise ici une syntaxe bash assez stricte pour la redirection ${file} au lieu de
$file

Tu peux chercher des explications sous
help (sous bash)
man bash
man find

En cherchant sous Google tu trouveras des tutoraiaux en français sur
find, tr et consorts.
(la langue française n'étant jamais un crière de choix pour moi)

Johan

Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
0
Natacha
 
J'ai bien compris tes dernières commandes mais je n'arrive pas à créer le fichier qui compose ce script. Je suppose qu'il doit avoir une extension "executable"??

Merci

Nat

P.S: Ce n'est pas pour un TP mais dans le cadre de mon travail. Ce script qui est sûrement le beaba pour un connaisseur me permettra de modifier des fichiers rapidement afin de travailler dessus le plus tôt possible.
0
grofwa Messages postés 440 Statut Membre 479
 
Salut,

Il n'y a pas d'extension pour rendre ton script exécutable.
Il faut lui changer les droits d'accès :
chmod +x ton_script

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
Natacha
 
Vous allez vouloir me tuer mais lorsque je lance le script il me marque:

find : option -maxdeph erronée
0
jisisv Messages postés 3678 Statut Modérateur 935
 
s/maxdeph/maxdepth/

C'est bien maxdepth qu'il faut lire

Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
0