J'essaie d'écrire un script qui analyse les champs du programme et les imprime en sortie standard.echo suppression des barres obliques inverses
données du fichier d'entrée est comme ce
field1 field2
Les champs sont séparés par des onglets
Dans un premier temps, j'ai essayé de l'écrire dans AWK.
cat test.txt | while read line; do entity=`awk -F "\t" '{print $2}'`;echo $entity; done
Cela fonctionne très bien sur la ligne de commande.
Mais lorsque je tente de faire la même chose dans un programme shell comme ci-dessous
while read line
do
entity=`echo $line|awk -F \t '{print $2}'`
echo $entity
done<"test.txt"
Raison d'être l'écho ligne $ imprime en fait onglets espaces. Je ne peux pas utiliser d'espaces car les champs peuvent contenir des espaces.
Puis j'ai essayé d'écrire en utilisant cut.
while read line
do
entity=`echo $line|cut -f5`
echo $entity
done<"test.txt"
Encore le même problème avec l'écho.
Avez-vous rencontré un problème similaire? Toute solution que vous pouvez me recommander.
Merci. Bala
afficher les données de l'échantillon réel et ce que vous voulez faire. décrire votre sortie – ghostdog74