Hello !
question d'optimisation, pour traiter des fichiers, je m'embête sévèrement à pratiquement utiliser un script shell pour chaque manipulation que je fais (ou presque) et donc j'imbrique mes exécutions de script les uns après les autres ce qui n'est pas très propre mais fonctionnel.
ma question est simple, comment je pourrais tout faire tenir en un script avec ce que j'ai fait ? (j'ai tenté, et quand j'ai tenté, le résultat final n'était pas le même, donc je me dis que le fait de mettre toutes mes actions les unes à la suite des autres ça fout le bordel)
merci pour l'aide et ci dessous l'ordre d'imbrication de mes scripts(oui je sais c'est moche) :
- traitement.sh :
- test.sh :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #!/bin/sh dir='/home/switches' exec $dir/test.sh
- test2.sh :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #!/bin/bash dir='/home/switches/status' dir2='/home/switches' list=`ls $dir` for i in $list do sed '1d;2d;3d;4d;5d;6d;7d;8d' $dir/$i > $dir/$i.tmp cat $dir/$i.tmp > $dir/$i rm $dir/*.tmp done exec $dir2/test2.sh
- test3.sh :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #!/bin/bash dir='/home/switches/description' dir2='/home/switches' list=`ls $dir` for i in $list do sed '1d;2d;3d;4d;5d;6d;7d;8d;9d;10d' $dir/$i > $dir/$i.tmp cat $dir/$i.tmp > $dir/$i rm $dir/*.tmp done exec $dir2/test3.sh
- test4.sh :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #!/bin/bash dir='/home/switches/description' dir2='/home/switches' list=`ls $dir` for i in $list do cat $dir/$i | sed 's/admin down down/admin down/' > $dir/$i.tmp cat $dir/$i.tmp > $dir/$i rm $dir/$i.tmp done exec $dir2/test4.sh
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #!/bin/bash dir='/home/switches/status' dir2='/home/switches/description' dir3='/home/switches/final' dir4='/home/switches' join -o 2.1,1.3,1.4,2.4 $dir/dccis7-shintstatus $dir2/dccis7-shintdesc > $dir3/DCCIS7 join -o 2.1,1.3,1.4,2.4 $dir/eccis1-shintstatus $dir2/eccis1-shintdesc > $dir3/ECCIS1 join -o 2.1,1.3,1.4,2.4 $dir/occis0-shintstatus $dir2/occis0-shintdesc > $dir3/OCCIS0 join -o 2.1,1.3,1.4,2.4 $dir/occis1-shintstatus $dir2/occis1-shintdesc > $dir3/OCCIS1 join -o 2.1,1.3,1.4,2.4 $dir/occis2-shintstatus $dir2/occis2-shintdesc > $dir3/OCCIS2 join -o 2.1,1.3,1.4,2.4 $dir/occis3-shintstatus $dir2/occis3-shintdesc > $dir3/OCCIS3 join -o 2.1,1.3,1.4,2.4 $dir/occis4-shintstatus $dir2/occis4-shintdesc > $dir3/OCCIS4 join -o 2.1,1.3,1.4,2.4 $dir/occis5-shintstatus $dir2/occis5-shintdesc > $dir3/OCCIS5 join -o 2.1,1.3,1.4,2.4 $dir/occis6-shintstatus $dir2/occis6-shintdesc > $dir3/OCCIS6 exec $dir4/import.sh
- import.sh :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #!/bin/sh user='switch' pass='switch' base='switch' dir='/home/switches/final' list=`ls $dir` for i in $list do mysql --local-infile -u$user -p$pass $base -e"LOAD DATA LOCAL INFILE '$dir/$i' INTO TABLE $i FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n';" done
Partager