Se connecter
Se connecter
Inscription
Mot de passe perdu
Connexion:
[Actualités]
PS5, Sony bannit-il les utilisateurs qui utilisent le navigateur "caché" de la ...
[Actualités]
Test The Thing Remastered (PS5) - Une refonte du classique de 2002
[Actualités]
L'iPhone le plus fin de tous les temps sera aussi le moins cher : ce que l'on sa...
[Actualités]
Prise en charge multi-utilisateurs « simultanée » et couplage Bluetooth plus ...
[Actualités]
Microsoft étudie les options permettant à des tiers de créer des appareils de...
[Actualités]
Ouvrir votre porte d’entrée à l’aide de Face ID pourrait être un tournant...
[Actualités]
Instagram prépare aussi des vidéos d'IA, mais pas comme Sora : voici à quoi e...
[Actualités]
L'ordinateur portable enroulable de Lenovo sera probablement la star du CES !
[Actualités]
Mises à jour PowerToys (deux fois) : les espaces de travail deviennent encore p...
[Actualités]
Test Mario & Luigi - L'épopée fraternelle (Nintendo Switch) - Prêt à lever l'encre ?...
[Articles]
The Thing Remastered
[Articles]
Mario & Luigi : L'épopée fraternelle
[Articles]
Deel acquiert la plateforme mondiale de gestion de la rémunération Assemble
[Articles]
Xuan Yuan Sword: The Gate of Firmament
[Articles]
Cyber-sécurité : bilan 2024 et regard vers 2025 par Andy Garth, directeur Aff...
[Articles]
Diesel Legacy: The Brazen Age
[Articles]
FANTASIAN Neo Dimension
[Articles]
Fairy Tail 2
[Articles]
Réseaux sociaux inondés d'arnaques deepfake ; Formbook, voleur d'informations ...
[Articles]
Snow Bros. Wonderland
Actualités
Lettre d'information
Proposer une actualité
Archives
Actualités
Articles
Programmation
Press Release
Matériel
Logiciels
Livres
Interviews
Derniers commentaires
Jeux Vidéos
XBox One
XBox 360
Wii U
PSP
PS4
PS3
PC
DS
GameCube
3DS
Forum
Derniers messages
Informatique
Fun
Divers
Logithèque
Blogs
Divers
A Propos
Annonceurs
Contact
Recherche
RSS
Editer un article
Titre
Mots Clés
Texte
.de Sh " Subsection heading [b][/b] .if t .Sp .ne 5 [b][/b]$1 [size=18] [b]Nom[/b] [/size] a2p - Traduteur de commande Awk à Perl [size=18] [b]Résumé[/b] [/size] .IX Header "SYNOPSIS" &[b]a2p[/b] [options] nom de fichier [size=18] [b]Description[/b] [/size] .IX Header "DESCRIPTION" &[i]A2p[/i] prend un script awk spécifié en ligne de commande (ou depuis l'entrée standard) et produit un script [i]perl[/i] comparable sur la sortie standard. [size=18] [b]Options[/b] [/size] .IX Subsection "Options" Options incluses : "[b][/b]-D
" 5 [table][row][col] [/col][col].IX Item "-D
" Initialise les variables de déboguage.[/col][/row][/table] "[b][/b]-F
" 5 [table][row][col] [/col][col].IX Item "-F
" Dit à a2p que ce script awk est toujours appelé avec le paramètre [b][/b]-F.[/col][/row][/table] "[b][/b]-n
" 5 [table][row][col] [/col][col].IX Item "-n
" Spécifie les noms de champs d'entrée si l'entrée n'a pas été « mappée » dans un tableau. Si vous traduisiez un script awk qui traite le fichier de mot de passe, vous devriez écrire : .Sp .Vb 1 & a2p -7 -nlogin.password.uid.gid.gcos.shell.home .Ve .Sp N'importe quel délimiteur peut être utilisé pour séparer les noms des champs.[/col][/row][/table] "[b][/b]-
" 5 [table][row][col] [/col][col].IX Item "-
" Dit à a2p que l'entrée aura toujours ce nombre de champs.[/col][/row][/table] "[b][/b]-o" 5 [table][row][col] [/col][col].IX Item "-o" Dit à a2p d'utiliser un comportement d'une ancienne version de awk. Les seules différences courantes à ce jour sont :[table][row][col] [/col][col][/col][/row][/table] "*" 5 [table][row][col] [/col][col]Les anciennes versions awk ont une boucle de ligne, même si il n'a a aucune action dans la ligne, tandis que la nouvelle version de awk n'en a pas.[/col][/row][/table] "*" 5 [table][row][col] [/col][col]Dans les anciennes versions de awk, sprintf est extrêmement avide de ses arguments. Par exemple, voici une déclaration .Sp .Vb 1 & print sprintf(some_args), extra_args; .Ve .Sp Les anciennes versions de awk considèrent que les [i]extra_args[/i] sont des arguments de f(CW*(C`sprintf*(C'; les nouvelles versions de awk considèrent ces mêmes arguments comme appartenant à f(CW*(C`print*(C'.[/col][/row][/table][table][row][col] [/col][col][/col][/row][/table] .ie n .Sh """Considerations""" .el .Sh "``Considerations''" .IX Subsection "Considerations" A2p ne peut pas faire un travail de traduction aussi bien qu'un humain, mais il le fait souvant pas mal. Il y a des endroits où vous devriez examiner le script Perl produit et le modifier un peu. Voici certains d'entre eux, sans ordre particulier.[/col][/row][/table] Il y a une façon de faire en awk pour forcer une interprétation numérique en entourant une expression de chaine de caractères avec [i]int()[/i], bien que l'argument soit toujours un entier de toute façon. Cela n'est pas nécéssaire en Perl, mais a2p ne peut pas dire si l'argument doit toujours continué d'être un entier, donc il le laisse tel quel. Vous pouvez vouloir l'enlever. Perl différencie les comparaisons numériques des comparaisons de chaîne de caractères. Awk a un opérateur pour les deux et décide au moment de l'exécution (run time) quel type de comparaison faire. A2p n'essaie pas de faire un travail complet d'émulation à ce stade. Au lieu de cela il suppose lequel vous voulez. C'est presque toujours bon, mais il peut se tromper. Tout ce qui est le résultat d'une supposition est marqué avec des commentaires. "f(CW*(C`#???*(C'". Vous devriez passer pour les vérifier. Vous devriez lancer au moins une fois avec le paramètre [b][/b]-w de Perl, lequel vous avertira si vous utilisez == au lieu d'utiliser eq. Perl n'essaie pas d'imiter le comportement d'awk dans lequel des éléments de tableau inexistants apparaissent brusquement simplement en y faisant référence. Si, d'une façon ou d'une autre, vous comptez sur ce mécanisme pour créer des entrées nulles pour un traitement postérieur pour... dedans, il ne seront pas présent dans Perl. Si a2p découpe une ligne et l'assigne a une liste de variables qui ressemble à (Fld1, Fld2, Fld3...) vous devriez relancer a2p en utilisant l'option &[b][/b]-n mentionnée ci-dessus. Cela vous laissera nommer les champs partout dans le script. Si ça vous découpe la ligne en tableau, le script se réfère probablement à un nombre de champs quelque part. Le statut de fin dans awk n'est pas forcément la fin du script ; il va au bloc s-1ENDs0 s'il y en a un. Les scripts awk qui contorsionnent dans le bloc s-1ENDs0 pour contourner ce même bloc peuvent être simplifiés dans de telle circonstance en enlevant la condition dans le bloc s-1ENDs0 et juste en sortant directement du script Perl. Perl a deux sortes de tableaux, les numériques indexés et les associatifs. Les tableaux associatifs de Perl sont appellés *(L"hashes*(R". Les tableaux Awk sont souvent traduient en « hashes », mais s'il vous arrive de savoir qu'un index sera toujours de type numérique, vous pourriez changer les {...} par des [...]. Les itérations sur un tableau de type « hashes » sont faites en utilisant la fonction [i]keys()[/i], mais les itérations sur un tableau numérique sont s-1NOTs0. Vous devriez avoir besoin de modifier chacune des boucles qui réitère sur ce type de tableau. Awk commence par supposer que s-1OFMTs0 a la valeur %.6g. Perl commence par supposer que sont équivalent, $#, à la valeur %.20g. Vous pourriez vouloir initialiser explicitement $# si vous utilisez la valeur par défaut de s-1OFMTs0. Près du début de la ligne de boucle seront découpées les opérations qui sont implicites dans le script Awk. Il y a des fois, quand vous pouvez déplacer ces opérations plus bas, les conditions qui testent entièrement l'enregistrement entraînent un découpage différent de ce qui est fait d'habitude. Pour des raisons esthétiques vous pourriez vouloir changer la base d'un tableau $[ à 1 au lieu de la valeur 0 qui est celle par défaut dans Perl, mais souvenez vous de changer tous les indices de tableau s-1ETs0 tous les [i]substr()[/i] et les opérations [i]index()[/i] pour que cela corresponde. On passe les commentaires qui disent *(L"# Here is a workaround because awk is dumb*(R",ca reste inchangé. les scripts Awk sont souvent incorporés dans des scripts en Shell qui « tunnelisent » les informations entrantes et sortantes de Awk. Souvent l'emballage de script Shell peut être incorporé dans le script Perl, depuis que Perl peut démarrer en se « tunnelisant » lui-même, et peut faire d'autres choses que awk ne peut pas faire lui-même. Les scripts qui font référence aux variables spéciales s-1RSTARTs0 et s-1RLENGTHs0 peuvent souvent être simplifiés en faisant référence aux variables $`, $& et $', tant qu'elles sont dans les limites du modèle qui les a initialisées. Le script Perl produit peut avoir des sous-routines définies pour traiter les sémantiques awk quant aux impressions et les commandes de saisies. Depuis a2p choisit d'habitude la justesse sur l'efficacité. C'est presque toujours possible de réécrire un tel code pour être plus efficace en renoncant au code superflu. Pour plus d'efficacité, vous pourriez vouloir enlever le mot-clé de n'importe quelle déclaration de retour qui est la dernière déclaration exécutée dans un sous-programme. A2p attrape la plupart des cas communs, mais n'analyse pas de blocs incorporés pour des cas plus subtils. ARGV[0] est traduit en f(CW$ARGV0, mais ARGV[n] est traduit en f(CW$ARGV[$n]. Une boucle qui essaierait de réitérer sur ARGV[0] ne le trouverait pas. [size=18] [b]Environnement[/b] [/size] .IX Header "ENVIRONNEMENT" A2p n'utilise pas de variable d'environnement. [size=18] [b]Auteur[/b] [/size] .IX Header "AUTEUR" Larry Wall <[i]larry@wall.org[/i]> [size=18] [b]Fichiers[/b] [/size] .IX Header "FICHIERS" [size=18] [b]Voir aussi[/b] [/size] .IX Header "VOIR AUSSI" .Vb 1 & perl Le compilateur/interpréteur Perl .Ve .Vb 1 & s2p traducteur de sed à perl .Ve [size=18] [b]Diagnostiques[/b] [/size] .IX Header "DIAGNOSTICS" [size=18] [b]Bugs[/b] [/size] .IX Header "BOGUES" Il devrait être possible d'émuler le comportement de awk dans le choix entre une chaine de caractères ou les opérations numériques, au moment de l'exécution par inspection des opérandes, mais ce serait brutal et inefficace. En plus, a2p devine presque toujours correctement. Le stockage de l'arbre de syntaxe de awk est actuellement statique, et peut-être expiré. [size=18] [b]Traduction[/b] [/size] Christophe Labarthe, 2003.
Fichier
Forum
-
Derniers messages
Bavardages
Aujourd'hui, je rénove ou je construis ^^
Software
problème sur windows 10
Réseaux et Télécom
Administrateur Réseau - Cisco
Réseaux et Télécom
Problème wifi (POE)
Software
Postfix - Need help
Bavardages
Oh râge oh désespoir !
Programmation
Enregistrement client et envoi mail
Software
SÉCURITÉ MACBOOK
Hardware
conseil matos réseau?
Hardware
nVidia Shield Android TV
Actualités
-
Archives
Consoles
PS5, Sony bannit-il les utilisateurs qui utilisent le navigateur "caché" de la console ?
Jeux Vidéos
Test The Thing Remastered (PS5) - Une refonte du classique de 2002
Apple
L'iPhone le plus fin de tous les temps sera aussi le moins cher : ce que l'on sait de l'iPhone 17 Air
Android
Prise en charge multi-utilisateurs « simultanée » et couplage Bluetooth plus facile : nouveautés d'Android Automotive
Microsoft
Microsoft étudie les options permettant à des tiers de créer des appareils de marque Xbox, éventuellement avec le système d'exploitation Xbox
Ada
CSS
Cobol
CPP
HTML
Fortran
Java
JavaScript
Pascal
Perl
PHP
Python
SQL
VB
XML
Anon URL
DailyMotion
eBay
Flickr
FLV
Google Video
Google Maps
Metacafe
MP3
SeeqPod
Veoh
Yahoo Video
YouTube
6px
8px
10px
12px
14px
16px
18px
Informaticien.be
- © 2002-2024
Akretio
SPRL - Generated via
Kelare
The Akretio Network:
Akretio
-
Freedelity
-
KelCommerce
-
Votre publicité sur informaticien.be ?