J'ai un script cShell qui est quelque chose comme ceci:Comment convertir ce script shell en un script Perl indépendant de la plateforme?
`netstat -ap | & grep tcp | grep myprocess | awk '{print $4}' | awk 'BEGIN { FS = :"}{print $2}'`
Voilà comment cela fonctionne
1.
$ netstat -ap | & grep tcp | grep myprocess
tcp 0 0 *:1234 *:* LISTEN 8888/myprocess
2.
$ netstat -ap | & grep tcp | grep myprocess | awk '{print $4}'
*:1234
3.
$ netstat -ap | & grep tcp | grep myprocess | awk '{print $4}' | awk 'BEGIN { FS = ":"}{print $2}'`
1234
Je dois rendre ceci aussi portable que possible en utilisant Perl. Je pense que la portabilité ne peut pas être garantie sans le comportement de netstat
et grep
, donc je vais essayer de m'assurer qu'ils sont pris en charge sur les systèmes cibles.
Je cherche
- Les considérations d'ordre général de garder à l'esprit pour faire portable le script Perl?
- Comment répliquer le comportement
awk
dans Perl? - Puis-je également répliquer le comportement de
grep
en Perl? Est-ce conseillé (je le ferai seulement si le grep de Perl a des avantages)?
[Je cible toutes les versions Windows et Linux répandues ici]
@gbacon: Is not PERL = 'Rapport d'extraction pratique Language'? – Lazer
=> qui est un backronyme, le nom original ne correspond à rien, le nom propre de la langue est 'Perl', le nom de l'interpréteur est' perl' –
'awk '{print $ 4}' | awk 'BEGIN {FS = ":"} {print $ 2}' 'peut être remplacé par une seule instruction awk 'awk' {split ($ 4,:, a); imprime une [2]} '' – Vijay