Δείτε εδώ τα πιο πρόσφατα μηνύματα από όλες τις περιοχές συζητήσεων, καθώς και όλες τις υπηρεσίες της AcroBase. H εγγραφή σας είναι γρήγορη και εύκολη. |
|
|
|
Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
|
#2
|
|
||||
Κώδικας:
echo 'cp (GNU coreutils) 7.4' | sed -e 's/^[^0-9.+-]\+//' -e 's/[^0-9.+-]\+$//' Αν επιτρέπονται οι pythonικές ατασθαλίες, να μια συνταγή που δουλεύει για όσους αριθμούς θες (απλά διαγράφει ό,τι δεν είναι αριθμός και σου σερβίρει όλους τους αριθμούς του αρχείου που του δίνεις σε μία γραμμή, χωρισμένους με κενά. Κώδικας:
echo 'cp (GNU coreutils) 7.4' | python -c 'import sys, re; print " ".join(re.findall("[0-9+.-]+",sys.stdin.read()))'
__________________
www.bedroomlan.org |
#3
|
|
|||
Εκτός απ'ό,τι έγραψε ο Αλέξης σε sed, θα μπορούσες να χρησιμοποιήσεις και regexp σε perl.
Πιο απλά αν ξέρεις εκ των προτέρων σε ποια θέση της γραμμής είναι ο αριθμός που θέλεις, θα μπορούσες να χρησιμοποιήσεις awk ή cut πχ Κώδικας:
echo "version something 7.4" | awk '{print $3}' Κώδικας:
echo "version something 7.4" | cut -d " " -f 3 |
#4
|
|
|||
Κώδικας:
#!/bin/bash shopt -s extglob string="cp (GNU coreutils) 7.4 some other junk" ver=${string##*([^0-9.])} ver=${ver%%*([^0-9.])} |
#5
|
|
||||
Όλα αυτά τα (σχετικά) νέα extensions του bash το κάνουν να μοιάζει όλο και περισσότερο με Befunge χωρίς το hack value.
__________________
www.bedroomlan.org |
#6
|
|
|||
|
#7
|
|
|||
Μεταξύ μας, η extglob σύνταξη προέρχεται από το ksh και έχει μερικές δεκαετίες στην καμπούρα της.
|
#8
|
|
||||
Α ναι, κατάλαβα την παρανόηση (δυστυχώς αφού έγραψα ένα κατεβατό προσπαθώντας να καταλάβω γιατί το ${VAR##word} ήταν extglob). Εγώ μιλούσα για το όλο variable expansion ${VAR##word}, όχι για το pattern (που όντως είναι extglob κρίνοντας από το manual). Οπότε ουσιαστικά δε χρησιμοποιείς regexp επειδή το πρόβλημα είναι αρκετά απλό για να λυθεί με extglob. Πλάκα πλάκα και με απλό glob θα μπορούσε να λυθεί.
__________________
www.bedroomlan.org |
#9
|
|
|||
Λ. |
Συνδεδεμένοι χρήστες που διαβάζουν αυτό το θέμα: 1 (0 μέλη και 1 επισκέπτες) | |
|
|