#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:
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
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.
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)
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