Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/01/2008, 22h19   #1
Invité de passage
 
Inscription : août 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 28
Points : 0
Points : 0
Par défaut Script Shell sur des fichiers et chaînes

Bonjour,

Je suis entrain de faire un scrit shell et j'aurais deux questions :

1) J'ai un fichier qui est de la forme suivante :
...
BALISE_DEBUT 1
...
BALISE_FIN 1
...
BALISE_DEBUT 2
...
BALISE_FIN 2
...

Et j'aimerais avoir un autre fichier qui contient uniquement :
BALISE_DEBUT 1
...
BALISE_FIN 1
BALISE_DEBUT 2
...
BALISE_FIN 2

Comment faire en shell?

2) J'ai un texte de la forme :
REQ_<NUMBER_1>_<NUMBER_2>_<NUMBER_3>_<NEW>
et j'aimerais avoir :
REQ_<NUMBER_1>_<NUMBER_2+1>_<NUMBER_3>_<NEW>

Par exemple:
$>echo "REQ_26_20_10_NEW" | mon_script.sh
REQ_26_21_10_NEW

Je veux répondre aux questions 1) et 2) en faisant un script shell.
chris_wafer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 21h45   #2
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Dans la formulation de tes phrases, évite les « je veux ... », si possible

Réponse 1 :
http://www.shellunix.com/sed.html

Code :
1
2
3
4
 
sed -n -e '/^BALISE_DEBUT 1/,/^BALISE_FIN 1/p' \
       -e '/^BALISE_DEBUT 2/,/^BALISE_FIN 2/p' \
    LISTE.lst
Réponse 2 :
http://www.shellunix.com/awk.html

Version compacte :

Code :
awk -F"_" 'BEGIN { FS="_"; OFS="_" } { $3++ ; print $0 }' -

Version + lisible :

Code :
1
2
3
4
5
6
7
8
9
awk -F"_" '
BEGIN {
	FS="_"
	OFS="_"
}
{
	$3++
	print $0
}' -
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h51.


 
 
 
 
Partenaires

Hébergement Web