Lecture via awk

dim -  
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,

Mon probleme est situé dans un shell script unix et est le suivant:

j'effectue un cat pour lire un fichier constitué comme suit:

A B od
C D od
E F od

od etant le return carriage.

lorsque j'utilise la synthaxe suivante, il ne lit pas la ligne complete en me renvoyant A en $1 et B en $2 mais me renvoi A en $1 en suite B en $1 en suite C en $1

for i in `cat ${BIN_DIR}/archive_file.ini`;
do
echo "*-----${i}------*"
GROUP=`echo $i | awk '{print $1}'`
TYPE=`echo $i | awk '{print $2}'`
done

Group est toujours egal a la valeur $1 mais $2 est tjrs vide.

Merci d'avance pour le coup de pouce.

Dim
A voir également:

2 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Essaie ça plutôt :
while read i ;
do
echo \"*-----${i}------*\"
GROUP=`echo $i | awk '{print $1}'`
TYPE=`echo $i | awk '{print $2}'`
done  < ${BIN_DIR}/archive_file.ini
;-))

PS. Sans les anti-slashes devant les guillemets (erreurs sur le site)
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Je poste mes essais, et d'un parce que j'ai oublié de le faire et de deux pour faire des tests sur le formatage des balises de codes ...
[jp@MDK tmpfs]$ cat fich.txt
A B
C D
E F

[jp@MDK tmpfs]$ cat script.sh
#! /bin/bash

#for i in  `cat fich.txt`;do
while read i; do
        echo "*-----${i}------*"
         var1=`echo $i | awk '{ print $1 }'`
         var2=`echo $i | awk '{ print $2 }'`
         echo "var1 = $var1"
         echo "var2 = $var2"
 done < fich.txt

[jp@MDK tmpfs]$ sh script.sh
*-----A B------*
var1 = A
var2 = B
*-----C D------*
var1 = C
var2 = D
*-----E F------*
var1 = E
var2 = F
[jp@MDK tmpfs]$
;-))
0