J'utilise 'bash' Shell et j'exécute la commande 'awk' ci-dessous sur un fichier dont les enregistrements sont séparés par un certain nombre de caractères différents comme les parenthèses, les deux points, les parenthèses comme l'exemple d'enregistrement suivant
...(field#13[field#14:]]:filed#18[filed#19)[...
Cependant, lorsque j'échappe "][" avec l'échappement simple '\', la commande awk échoue et je dois utiliser l'échappement double '\'. \\ Comment est-il nécessaire d'utiliser des crochets à double échappement (dans 'csh' Shell c'est pareil) ?
awk -F"[\\[\\]:)(]" '{print $18}' inFile
filed#18
Veuillez également noter que je sais que je peux les échapper avec un double échappement '. \\ comme ci-dessous, je veux juste savoir pourquoi pour les parenthèses c'est obligatoire ?
awk -F"[\\[\\]\\:\\)\\(]" '{print $18}' inFile
filed#18
même l'utilisation de l'échappement de signe donne l'avertissement (sauf pour les parenthèses), mais toujours l'exécution de la commande et le résultat venant, merci.
awk -F '[\\[\\]\:\)\(]' '{print $18}' inFile
awk: warning: escape sequence `\:' treated as plain `:'
awk: warning: escape sequence `\)' treated as plain `)'
awk: warning: escape sequence `\(' treated as plain `('
filed#18