J'ai besoin d'obtenir les enregistrements d'un fichier texte sous Unix. Le délimiteur est plusieurs espaces. Par exemple:Unix - Besoin de couper un fichier qui a plusieurs espaces comme délimiteur - awk ou coupé?
2U2133 1239
1290fsdsf 3234
De là, je dois extraire
1239
3234
Le délimiteur pour tous les enregistrements seront toujours 3 blancs.
Je dois le faire dans un script unix (.scr) et écrire la sortie dans un autre fichier ou l'utiliser comme entrée pour une boucle do-while. J'ai essayé ci-dessous:
while read readline
do
read_int=`echo "$readline"`
cnt_exc=`grep "$read_int" ${Directory path}/file1.txt| wc -l`
if [ $cnt_exc -gt 0 ]
then
int_1=0
else
int_2=0
fi
done < awk -F' ' '{ print $2 }' ${Directoty path}/test_file.txt
test_file.txt est le fichier d'entrée et file1.txt est un fichier de recherche. Mais la méthode ci-dessus ne fonctionne pas et me donne des erreurs de syntaxe près de awk -F
J'ai essayé d'écrire la sortie dans un fichier. Ce qui suit a fonctionné en ligne de commande:
more test_file.txt | awk -F' ' '{ print $2 }' > output.txt
Cela fonctionne et écrit les enregistrements dans output.txt en ligne de commande. Mais la même commande ne fonctionne pas dans le script unix (c'est un fichier .scr)
Veuillez me faire savoir où je me trompe et comment je peux résoudre ce problème.
Merci,
Visakh
Voir aussi http://stackoverflow.com/questions/7142735/linux-cut-help-how-to-specify-more-spaces-for-the-delimiter – pnkfelix