Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Script sous Unix

Natacha, le lundi 2 août 2004 à 16:33:19
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
Répondre à Natacha  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
grofwa, le lundi 2 août 2004 à 16:42:40
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]
Répondre à grofwa

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Natacha, le lundi 2 août 2004 à 18:00:45
Quelle doit être l'extension d'un fichier script?
Répondre à Natacha

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jisisv, le lundi 2 août 2004 à 18:17:31
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)
Répondre à jisisv

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Natacha, le lundi 2 août 2004 à 18:39:05
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
Répondre à Natacha

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Natacha, le lundi 2 août 2004 à 19:11:57
Quelle est la ligne de commande pour lancer le script en question?
Répondre à Natacha

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jisisv, le lundi 2 août 2004 à 19:12:21
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)
Répondre à jisisv

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jisisv, le lundi 2 août 2004 à 19:28:30
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)
Répondre à jisisv

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Natacha, le mardi 3 août 2004 à 10:44:42
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.
Répondre à Natacha

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
grofwa, le mardi 3 août 2004 à 11:33:16
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]
Répondre à grofwa

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Natacha, le mardi 3 août 2004 à 17:10:27
Vous allez vouloir me tuer mais lorsque je lance le script il me marque:

find : option -maxdeph erronée
Répondre à Natacha

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 jisisv, le mercredi 4 août 2004 à 01:27:15
s/maxdeph/maxdepth/

C'est bien maxdepth qu'il faut lire

Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
Répondre à jisisv
Pour tester un script bash unix sous winpro (Résolu)Salut a tous 2 questions : je doit rendre un devoir : un script bash pour unix mais je n'ai chez moi que winpro lsd3 (qui me convient d'ordinaire) ya t'il moyen de tester des scripts unix sous windows? Ya t'il un bon tutorial avec... www.commentcamarche.net/forum/affich-2435751-pour-tester-un-script-bash-unix-sous-winpro
Scrutation repertoire unix (Résolu)Bonjour, Tout d'abord, mes connaissance Unix sont proche de la nullité. ^_^ Je souhaite réaliser un script UNIX (environnement AIX) qui va realiser deux choses : 1) des la presence d'un fichier dans un répertoire déterminé (et unique), le... www.commentcamarche.net/forum/affich-6431186-scrutation-repertoire-unix
Script pour afficher fichiers d1 répertoire (Résolu)Bonjour a toutes et tous, Je réalise un script unix dans le cadre de mon travail, et je voudrais afficher à l'écran la liste des fichiers contenus dans un répertoire ( qui n'est pas le répertoire dans lequel je travaille ). Cette commande de... www.commentcamarche.net/forum/affich-4136806-script-pour-afficher-fichiers-d1-repertoire
Exécuter un script shellExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y plusieurs possiblités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Prémièrement rendez votre script exécutable... www.commentcamarche.net/faq/sujet-4627-executer-un-script-shell
Changer le mot de passe via un scriptChanger le mot de passe via un script passwd Traditionnellement avec la commande "passwd" et son option "--stdin", au travers d'un "tube" (pipe en anglais), ce qui donne la syntaxe suivante :echo -e "new_password\nnew_password" | (passwd --stdin... www.commentcamarche.net/faq/sujet-5976-changer-le-mot-de-passe-via-un-script
Code pour télécommande universelleTélécommande universelle Philips Télécommande universelle Thomson ROC Télécommande universelle All for one Télécommande universelle Star Choice Télécommande universelle Marmitek Télécommande universelle Lifetec LT Télécommande universelle... www.commentcamarche.net/faq/sujet-2469-code-pour-telecommande-universelle
Shell | lister le contenu d'un repertoire !! (Résolu)Salut ! Je voudrai executer un script uniquement si un fichier (quelquonc et quelque soi l'extension) existe dans un repertoire !!! En gros Si un fichier existe dans /home/ftp/upload/ alors > continuer le script sinon arreter le script !! Fin... www.commentcamarche.net/forum/affich-3216499-shell-lister-le-contenu-d-un-repertoire
[SAS] lancer programme SAS par batch (Résolu)Bonjour, J'aimerais lancer un programme SAS à partir d'un script unix (.sh). J'y arrive en utilisant la commande suivante : $SASEXE -sysin $DIR/$PGMSAS -log $FILE_LOGSAS avec : SASEXE=/exploit/sas82/sas DIR=/app/CASTING/prog/pgmsas/repa... www.commentcamarche.net/forum/affich-2094863-sas-lancer-programme-sas-par-batch
Lister ts fichiers sans qlqs repertoires (Résolu)Bonjour, J'ai crée un script unix en .sh Je voudrais lister tous les fichiers qui sont dans une arborescence en excluant certains fichiers et répertoires à la fois. par, exple: /tutu -> tutu1.txt; tutu2.txt /tutu/toto -> toto1.txt ; toto2.txt... www.commentcamarche.net/forum/affich-4658063-lister-ts-fichiers-sans-qlqs-repertoires
Télécharger WLM Universal Patcher++WLM Universal Patcher est un patch universel pour MSN (Windows Live Messenger) permettant : d'ouvrir plusieurs sessions simultanément de masquer les bannières publicitaires de masquer les onglets de masquer la barre de publicités de... www.commentcamarche.net/telecharger/telecharger-34055113-wlm-universal-patcher
Télécharger Revo UninstallerRevo Uninstaller est logiciel de nettoyage en profondeur avec diverses fonctionnalités : Nettoyage, désinstalleur de programmes avec suppression des clefs de registres périmées. Un mode Chasseur qui permet de supprimer les fichiers à la main par un... www.commentcamarche.net/telecharger/telecharger-34055245-revo-uninstaller
Télécharger UnisonUnison est un logiciel de synchronisation de répertoires. Il est capable de travailler de manière bidirectionnelle, c'est à dire que vous pouvez effectuer des modifications dans les deux répertoires, et Unison les synchronisation... www.commentcamarche.net/telecharger/telecharger-236-unison
Phantasy Star Universe: Ambition of the IlluminusOther Names:Phantasy Star Universe 2: Ambition of Illuminus, Phantasy Star Universe: Illuminas no Yabou (JPN),Genre:Jeu de rôle / Aventure,Jeu en ligne,Développeur:Sonic Team,Divers:Online,This expansion pack requires the full version of Phantasy... www.commentcamarche.net/guide-achat/phantasy-star-universe-ambition-of-the-illuminus-977703-fiche-technique
Ordinateur - Le bus USB (Universal Serial Bus) Le bus USB (Universal Serial Bus, en français Bus série universel) est, comme son nom l'indique, basé sur une architecture de type série. Il s'agit toutefois d'une interface entrée-sortie beaucoup plus rapide que les ports série standards.... www.commentcamarche.net/pc/usb.php3
Système UNIX - Introduction Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs utilisateurs. Il possède... www.commentcamarche.net/unix/unixintro.php3
Système UNIX - Commandes Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés -l Affiche un listing détaillé -R Affiche les fichiers récursivement (c'est-à-dire dans les sous-répertoires) -d Affiche... www.commentcamarche.net/unix/unixcomm.php3
Toutes les réponses pour « Script sous Unix »