Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/07/2013, à 17:00

MrFaelivrin

[RESOLU] awk: 1: unexpected character '\' (AWK)

Rebonjour à tous,


J'ai une liste d'url, prenons en exemple ces URL:

Je veux récupérer la fin de l'url, le nom du fichier.

awk -F "/" ' {print $NF;}' ./0000_liste_livres_pdf.txt | sort -u > ./0000_liste_livres_pdf.txt  

Résultat:

awk: 1: unexpected character '\'

Quelqu'un pourrait-il m'expliquer? Merci. tongue


EDIT: Il s'agissait d'une erreur d'ouverture/fermeture de guillemets.

Dernière modification par MrFaelivrin (Le 01/08/2013, à 09:32)

Hors ligne

#2 Le 31/07/2013, à 17:19

pingouinux

Re : [RESOLU] awk: 1: unexpected character '\' (AWK)

Re-bonjour,
La commande est correcte, je n'arrive pas à reproduire ton erreur. D'autre part, ces deux fichiers ne doivent pas être identiques :
awk -F "/" ' {print $NF;}' ./0000_liste_livres_pdf.txt | sort -u > ./0000_liste_livres_pdf.txt

Hors ligne

#3 Le 31/07/2013, à 17:28

aduxas

Re : [RESOLU] awk: 1: unexpected character '\' (AWK)

Je confirme.  Est-ce qu'il y a des caracteres bizarres, comme p.e. des guillemets non-standards (ouvrant/fermant) ?  En tout cas, comme elle est écrite, la commande va écraser le fichier et tu perdras tes données.  L'erreur awk t'a sauvé.

Dernière modification par aduxas (Le 31/07/2013, à 17:29)

Hors ligne

#4 Le 31/07/2013, à 18:15

Ivanovich

Re : [RESOLU] awk: 1: unexpected character '\' (AWK)

bonjour

cecile@Ubuntu-Cecile:~/Documents/Jacques/tmp$ cat Liste_url.txt
    http://www.ebooksgratuits.com/pdf/wilde … possum.pdf
    http://www.ebooksgratuits.com/pdf/wilde … savile.pdf
    http://www.ebooksgratuits.com/pdf/wilde … n_gray.pdf
    http://www.ebooksgratuits.com/pdf/wilde … t_m_wh.pdf
    http://www.ebooksgratuits.com/pdf/wilde … colyte.pdf
    http://www.ebooksgratuits.com/pdf/wilde_salome.pdf
cecile@Ubuntu-Cecile:~/Documents/Jacques/tmp$ awk -F "/" ' {print $NF;}' ./Liste_url.txt | sort -u > Liste_url.txt
cecile@Ubuntu-Cecile:~/Documents/Jacques/tmp$ ls
Liste_url.txt  Liste_url.txt.save
cecile@Ubuntu-Cecile:~/Documents/Jacques/tmp$ cat Liste_url.txt
cecile@Ubuntu-Cecile:~/Documents/Jacques/tmp$ cp Liste_url.txt.save Liste_url.txt
cecile@Ubuntu-Cecile:~/Documents/Jacques/tmp$ awk -F "/" ' {print $NF;}' ./Liste_url.txt | sort -u > Liste_livres.txt
cecile@Ubuntu-Cecile:~/Documents/Jacques/tmp$ cat Liste_livres.txt
wilde … colyte.pdf
wilde … n_gray.pdf
wilde … possum.pdf
wilde_salome.pdf
wilde … savile.pdf
wilde … t_m_wh.pdf

Comme dit plus haut, ça marche sauf qu'avec le même fichier en source et destination il est vide au final.


Mint 20.3 Cinnamon
Dell Optiplex 3020 - Intel(R) i5-4590  // DIMM DDR 2 x 4Go - Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller
Samsung SSD 750 EVO 120GB / Samsung SSD 960 EVO 250GB / ATA Disk WD10EARS (1,0TB)

Hors ligne

#5 Le 01/08/2013, à 09:31

MrFaelivrin

Re : [RESOLU] awk: 1: unexpected character '\' (AWK)

Merci beaucoup j'ai suivi vos conseils et il s'agit d'un problème concernant les ".

Le problème ne venait donc pas de ma commande.

awk -v value="${research}" -F "\t" '{system("../ajout.sh \""$0"\" \""value"\"")}' ./0000_liste_auteurs.txt

Originellement la commande était écrite de la sorte: (je suis remonté à elle en commentant mes différentes commandes. Dans mon projet, j'appelle des scripts imbriqués dans d'autres scripts pour trier 6000 livres.)

awk -v value="${research}" -F "\t" '{system("../ajout.sh " "\""$0"\"" " "\""$0"\""")}' ./0000_liste_auteurs.txt

Merci beaucoup pour cette aide apportée.

Dernière modification par MrFaelivrin (Le 01/08/2013, à 09:33)

Hors ligne

#6 Le 01/08/2013, à 12:02

pingouinux

Re : [RESOLU] awk: 1: unexpected character '\' (AWK)

MrFaelivrin #5 a écrit :
awk -v value="${research}" -F "\t" '{system("../ajout.sh \""$0"\" \""value"\"")}' ./0000_liste_auteurs.txt

Cette commande me paraît équivalente à celle-ci, plus simple :

while read lig; do ./ajout.sh "$lig" "$research"; done <./0000_liste_auteurs.txt

Hors ligne