Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/05/2011, à 22:34

elkev

remplacement quelquechose par quelquechose+caractère

Bonsoir!

Je vous donne l'énoncé d'un exercice que j'ai à faire :

Écrivez un script colonnes.sh qui admet quatre paramètres : un nom de fichier ordinaire,
un caractère et deux entiers n1 et n2 tels que le premier soit inférieur ou égal au second. Le
caractère sert de délimiteur entre les colonnes du fichier. Le rôle de ce script est d’afficher, sur la
sortie standard, les colonnes du fichier dont le numéro est compris entre n1 et n2 . Si les paramètres
ne sont pas conformes, vous afficherez un message d’erreur.


Bon, si j'ai bien compris, on me demande de produire un truc qui affiche les colonnes de  n1 à n2 dans fichier, et d'ajouter le caractère choisi entre les colonnes sortantes;
j'ai produit ça, dont on peut se passer des premières lignes:

#! /bin/zsh

########
if [[ $3 -gt $4 ]]  then echo "erreur. Le troisième paramètre doit être plus petit que le dernier"
elif [[ $#1 = 0 ]] then echo "erreur. Choisis un fichier"
elif [[ ! -e $1 ]] then echo "erreur. Le fichier doit exister"
elif [[ $#2 = 0 ]] then echo "erreur. Choisis un délimiteur!"
elif [[ $#3 = 0 ]] || [[ $#4 = 0 ]] then echo "erreur. Il faut choisir des numéros de colonne!"
else  
########
cut -c $3-$4 $1 |  sed -e "s/[*]/[*]$2/g"
fi

bon. mon problème est que dans la sortie , j'obtiens

ubuntu% colonnes.sh colonnes.sh ::: 3 6
 /bi

####
 [[ 
if [
if [
if [
if [
se  
####
t -c

ce qui me conviendrait si on avait remplace l'occurence de * par *$2

j'ai également essayé avec . ? etc... je ne vois pas comment faire!

merci d'avance!

Hors ligne

#2 Le 16/05/2011, à 23:09

Watael

Re : remplacement quelquechose par quelquechose+caractère

énoncé a écrit :

Le caractère sert de délimiteur entre les colonnes du fichier.

cut -f $3-$4 -d "$2" "$1"

Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 16/05/2011, à 23:12

Postmortem

Re : remplacement quelquechose par quelquechose+caractère

Salut,
Dans ton exercice, moi je comprends plutôt que le 2ème paramètre doit être ce qui va servir à délimiter les colonnes dans le fichier de départ.
Après, je vérifierais le nombre de paramètres, si le fichier existe, si les paramètres 3 et 4 sont biens des nombres et que le paramètre 3 est inférieur au 4.
Pour afficher les colonnes 3 à 5 d'un fichier, le délimiteur de colonne étant le caractère # :

cut -d '#' -f 3-5 mon_fichier.txt

Sinon, je pense que t'as une erreur dès le début : #! /bin/zsh est à remplacer par #!/bin/zsh (sinon, moi pas connaître zsh !)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne