Besoin d'aide débutant bash

Fermé
math - 5 nov. 2011 à 16:11
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 5 nov. 2011 à 18:28
Bonjour,

je debute en bash et je dois dire que ce n'ai pas tache facile. J'ai vraiment beaucoup de mal. C'est pourquoi je fais besoin de votre aide.
je vous explique mon probleme :
jai un fichier texte comme celui-ci

12 25 18
10 2 1
23 9 24
14 15 3

(forme une sorte de matrice ou les sepateurs de colonnes sont des tabulations et les separateurs de ligne sont des retour chariots)

J'aimerai faire un script qui me permetterai de lire le fichier et de le stocké pour que je puisse assez facillement acceder a mes "différentes cellules"

j'ai essaiyé avec
var=$(cat fichier)
mais le probleme c'est que je n'ai plus les tabulations et les retours chariots,(pour etre plus claire, il est difficile de retrouvé par exemple l'élément de la ligne 2 colonne 3)

Si vous avez des idées je suis ouvert a toutes vos propositions
je vous remercie par avance,
Cordialement Mathieu.


3 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
5 nov. 2011 à 17:03
hello
utiliser des "
$ echo $var
12 25 18 10 2 1 23 9 24 14 15 3
$ 
$ echo "$var"
12 25 18
10 2 1
23 9 24
14 15 3 
$ 
0
Merci pour cette réponse mais ce n'est pas vraiment comme cela que je voulais dire, en faite je vais devoir travailler comme dans un tableur, ou chaque element correspondrai a une cellule , si part exemple dans la ligne1 colone 3 jai la reference pour acceder a la ligne 3 colones 1 je dois pouvoir y acceder facilement
en faite je veux recuperer chaque valeur en "sachant" ou elle se place (sans utiliser de tableau)
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
5 nov. 2011 à 18:28
Salut,

$ cat plop
12	25	18
10	2	1
23	9	24
14	15	3

$ awk -F'\t' 'NR==2 { print $3 }' plop      # ligne 2 colonne 3
1

$ awk -F'\t' 'NR==3 { print $1 }' plop     # ligne 3 colonne 1 
23

$ 

;-))
0