Ilias95 Δημοσ. 29 Μαΐου 2014 Share Δημοσ. 29 Μαΐου 2014 Να 'σαι καλά! Το πρώτο με το echo μου κάνει!Η αλήθεια είναι ότι και γω κάτι παρόμοιο με αυτό με τις αγκύλες θυμάμαι ότι είχα δει κάπου αλλά όπως το πόσταρες δεν δουλεύει (και δεν κατάλαβα γιατί το αναφέρεις σαν τρόπο που δεν δουλέυει ).PS.Το workaround με το νέο αρχείο δεν μ' αρέσει γιατί πρέπει να σκεφτείς τι όνομα να του δώσεις, να γράψεις κώδικα για να ελέγξεις αν υπάρχει ήδη τέτοιο αρχείο αλλιώς να του δώσεις άλλο όνομα κτλ... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
imitheos Δημοσ. 29 Μαΐου 2014 Share Δημοσ. 29 Μαΐου 2014 Το workaround με το νέο αρχείο δεν μ' αρέσει γιατί πρέπει να σκεφτείς τι όνομα να του δώσεις, να γράψεις κώδικα για να ελέγξεις αν υπάρχει ήδη τέτοιο αρχείο αλλιώς να του δώσεις άλλο όνομα κτλ... Δεν μπορείς να χρησιμοποιήσεις το pid ? Ονομάζεις το αρχείο file.$$ (το $$ δίνει το τρέχον pid) το οποίο και να υπάρχει ακόμη δεν σε πειράζει να σβηστεί γιατί θα είναι απομεινάρι από κάποια άλλη εφαρμογή (ένα πιθανό πρόβλημα που μου έρχεται στο μυαλό είναι να δημιουργήθηκε κάποιο αρχείο από κάποιο parent process το οποίο σταμάτησε να υπάρχει αλλά το αρχείο να χρησιμοποιείται από κάποιο child το οποίο τρέχει για τόσο αρκετό καιρό ώστε να ξαναχρησιμοποιηθεί το pid του parent για την εφαρμογή σου αλλά κάτι τέτοιο είναι πολύ χλωμό). Να 'σαι καλά! Το πρώτο με το echo μου κάνει!Δεν σου κάνει. Όπως είπα κανένας από αυτούς τους τρόπους δεν δουλεύει σωστά. Μπορεί να τους πετάξεις 100 εισόδους και να δείχνουν ότι δουλεύουν σωστά και μετά από καιρό και με μια συγκεκριμένη είσοδο να φας ώρες προσπαθώντας να βρεις τι πάει στραβά (χωρίς φυσικά να πάει το μυαλό σου ότι φταίει αυτή η εντολή αφού έπαιζε σωστά). % cat > kk << EOF > 123 > 234 > \t > 345 > > EOF % ls -al kk -rw-r--r-- 1 test test 16 Μάι 29 20:16 kk % hexdump -C kk 00000000 31 32 33 0a 32 33 34 0a 5c 74 0a 33 34 35 0a 0a |123.234.\t.345..| % md5sum kk 9543c5bed76457a35f05d763f1257246 kk Όπως βλέπουμε, η 3η γραμμή (μετά το 234) περιέχει τους χαρακτήρες "\t" και στην τελευταία γραμμή πάτησα απλά enter για να εισάγω μια κενή γραμμή. % echo "$(cat kk)" > kk % ls -al kk -rw-r--r-- 1 test test 14 Μάι 29 20:19 kk % hexdump -C kk 00000000 31 32 33 0a 32 33 34 0a 09 0a 33 34 35 0a |123.234...345.| % md5sum kk 71f4f7b511d786bb6d5109a781c63078 kk Η echo έφαγε την τελευταία κενή γραμμή και επίσης μετέτρεψε τους χαρακτήρες "\t" στο κυριολεκτικό χαρακτήρα TAB (αυτό που βλέπουμε ascii 09). Αν χρησιμοποιήσουμε "echo -E" αντί για σκέτο echo, το αποτέλεσμα είναι λίγο καλύτερο αλλά πάλι υπάρχει corruption σε κάποιες εισόδους. Η μόνη λύση που να παίζει σωστά είναι με το προσωρινό αρχείο. 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
giorgos147 Δημοσ. 31 Μαΐου 2014 Share Δημοσ. 31 Μαΐου 2014 (επεξεργασμένο) Delete^ Επεξ/σία 1 Ιουνίου 2014 από giorgos147 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tritonas00 Δημοσ. 2 Ιουνίου 2014 Share Δημοσ. 2 Ιουνίου 2014 Ψαχνω ενα pattern για την tar το οποιο να κανει exclude τα περιεχομενα ολων των φακελων σε μια διαδρομη εκτος απο εναν. Δηλαδη ο /koko εχει τους φακελους: 1 2 3 Θελω να μεινουν στο backup οι 2 3 χωρις τα περιεχομενα τους και ο 1 με τα περιεχομενα του. Δοκιμασα διαφορα: --exclude=/koko/*/*[^1] --exclude=/koko/*/[^1]* --exclude=/koko/*/*[!1] --exclude=/koko/*/[!1]* αλλα δεν. Καμια ιδεα? Αλλιως θα βαλω να κανει exclude εναν εναν εκτος απο τον 1. Δεν θελω να το κανω με include from file. με --exclude=/koko/*/* μενουν οι 1 2 3 χωρις τα περιεχομενα τους. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
imitheos Δημοσ. 2 Ιουνίου 2014 Share Δημοσ. 2 Ιουνίου 2014 Θελω να μεινουν στο backup οι 2 3 χωρις τα περιεχομενα τους και ο 1 με τα περιεχομενα του. Δοκιμασα διαφορα: --exclude=/koko/*/*[^1] --exclude=/koko/*/[^1]* --exclude=/koko/*/*[!1] --exclude=/koko/*/[!1]* Το --exclude=/koko/[!1]/* δουλεύει ? 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tritonas00 Δημοσ. 2 Ιουνίου 2014 Share Δημοσ. 2 Ιουνίου 2014 ΘΕΟΣ! Thanks! Αν ομως οι φακελοι δεν εχουν για ονομα αριθμο δεν δουλευει πχ φακελοι: test kiki local και κανω --exclude=/koko/[!local]/* ή --exclude=/koko/[^local]/* δεν παιζει. Τι πρεπει να αλλαχτει? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
imitheos Δημοσ. 3 Ιουνίου 2014 Share Δημοσ. 3 Ιουνίου 2014 ΘΕΟΣ! Thanks! Αν ομως οι φακελοι δεν εχουν για ονομα αριθμο δεν δουλευει πχ φακελοι: test kiki local και κανω --exclude=/koko/[!local]/* ή --exclude=/koko/[^local]/* δεν παιζει. Τι πρεπει να αλλαχτει? Φυσικά δεν παίζει Το [] δεν κάνει match ένα σετ χαρακτήρων ? Οπότε το [!local] σημαίνει οτιδήποτε δεν είναι "local" ή οτιδήποτε δεν περιέχει τους χαρακτήρες l,o,c,a ? Για να κάνεις match ολόκληρη την λέξη ένας τρόπος είναι να χρησιμοποιήσεις την ίδια μορφή αλλά με παρενθέσεις δηλαδή !(local) αλλά θα χρειαστείς extended globbing σε bash. 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tritonas00 Δημοσ. 3 Ιουνίου 2014 Share Δημοσ. 3 Ιουνίου 2014 Καλως thanks και παλι! Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
markelos Δημοσ. 3 Ιουνίου 2014 Share Δημοσ. 3 Ιουνίου 2014 regular expressions ftw ελληνικα Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
salida Δημοσ. 4 Ιουνίου 2014 Share Δημοσ. 4 Ιουνίου 2014 σε freebsd και sh κάνω generate ενα report με στοιχεία του μηχανήματος όπως temperature, free ram, arp -a και διάφορα άλλα.ποιός είναι ενδεδειγμένος τρόπος για να γίνει όλο σε html και να το στείλω με mail με ssmtp? Προς το παρόν κάνω απο ενα script Echo τις εντολές που θέλω για το mail , αλλά κάποια πράγματα ενω στο script εμφανίζονται σωστα στην html χρειάζονται επιπλέον </br> για να είναι σωστή η εμφάνιση. Συγκεκρινένα ενω το arp -a | awk '{print $2}' αν το εκτελέσω βγάζει ΜΟΝΟ τις IP την μία κάτω απο την άλλη, αν την κάνω echo την αντίστοιχη εντολή μέσα στο HTML βγάζει τις IP την μια μετά την άλλη στην ίδια σειρά . έψαξα με την cut να αντικαταστήσω το ')' με </br> για να σπάει γραμμή αλλά δε δούλεψε. με ενδιαφέρει είτε να καταφέρω το παραπάνω (δηλαδή με κάποιο τρόπο να τυπώνω IP ανα γραμμή) είτε να υλοποιήσω διαφορετικο reporting system , με καλύτερη εμφάνιση σε html. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ilias95 Δημοσ. 4 Ιουνίου 2014 Share Δημοσ. 4 Ιουνίου 2014 Δοκίμασε να βάλεις όλη την έξοδο σε <pre> tag στην html. Το pre tag διατηρεί και τα κενά και τα line breaks. 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
salida Δημοσ. 4 Ιουνίου 2014 Share Δημοσ. 4 Ιουνίου 2014 (επεξεργασμένο) Δοκίμασε να βάλεις όλη την έξοδο σε <pre> tag στην html. Το pre tag διατηρεί και τα κενά και τα line breaks. Συνονόματε πολύ χρήσιμο αυτό το tag (δε το γνώριζα),όντως κάνει αυτό που θέλω. τώρα θέλει να παλέψω με το να φαίνετε σωστά και σε κινητά.. Ευχαριστώ και πάλι για τη βοήθεια **edit1 πολύ πιο εύκολο απο ότι φανταζόμουν, ένα δείγμα του report (έχουν διαγραφεί κάποιες πληροφορίες) **edit2 για κάποιο λόγο δε δείχνει σωστά την html στο hotmail με browser αλλα με το κινητό όλα φαίνονται κανονικά ~~~~~~~~~TEMP-INFO~~~~~~~~~~ CPU Temp = 55.0C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~MEM-INFO~~~~~~~~~~~ real memory = 1073741824 (1024 MB) avail memory = 1008111616 (961 MB) agp0: aperture size is 256M, detected 7932k stolen memory ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~HDD-INFO~~~~~~~~~~~ /dev/ada0s1a 13G 3.2G 8.4G 28% / ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~TOP-INFO~~~~~~~~~~~ last pid: 4+00:51:14 16:13:03 Mem: 61M 110M Buf, PID USERNAME WCPU COMMAND 1499 root 2.49% 44474 root 0.49% 33476 root 0.49% 21493 root 0.20% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~WHO-INFO~~~~~~~~~~~ root ttyv0 May 31 15:23 root pts/0 Jun 4 15:20 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ARP-INFO~~~~~~~~~~~ Total number of ips = 6 (192.168.1.1) (192.168.1.2) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~UpTime-INFO~~~~~~~~~ 4:13PM up 4 days, 51 mins, 2 users, load averages: 0.36, 0.23, 0.18 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~Power-INFO~~~~~~~~~~ On power ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Επεξ/σία 4 Ιουνίου 2014 από salida Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ilias95 Δημοσ. 11 Ιουνίου 2014 Share Δημοσ. 11 Ιουνίου 2014 Η παρακάτω εντολή: ilias@archpc ~ ➜ echo "mark%3Fop%3Dadd%26bkmk%3D" | sed -r 's/^.*([0-9A-F]{2}).*$/\1/g' 3D ilias@archpc ~ ➜ Θα περίμενα να επιστρέψει το 3F που πιστεύω ότι γίνεται match πρώτο.Αυτό όμως φαίνεται να επιστρέφει το τελευταίο που κάνει match. Αν σβήσω το 3D στο τέλος του string θα επιστρέψει το 26.Γιατί συμβαίνει αυτό και πως ακριβώς συμπεριφέρεται ο sed εδώ; Και κάτι ακόμα.Το ~/mplampla θεωρείται absolute path; (δεν νομίζω)Προσωπικά έχω την εντύπωση ότι absolute path μπορούμε να θεωρήσουμε μόνο ότι ξεκινάει από την /. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
imitheos Δημοσ. 11 Ιουνίου 2014 Share Δημοσ. 11 Ιουνίου 2014 Η παρακάτω εντολή: ilias@archpc ~ ➜ echo "mark%3Fop%3Dadd%26bkmk%3D" | sed -r 's/^.*([0-9A-F]{2}).*$/\1/g' 3D ilias@archpc ~ ➜Θα περίμενα να επιστρέψει το 3F που πιστεύω ότι γίνεται match πρώτο. Αυτό όμως φαίνεται να επιστρέφει το τελευταίο που κάνει match. Αν σβήσω το 3D στο τέλος του string θα επιστρέψει το 26. Το πρόβλημα είναι ότι πολλοί τελεστές είναι "greedy" δηλαδή κάνουν match όσους περισσότερους χαρακτήρες μπορούν. Εσύ γράφεις .*(αριθμοί) οπότε λες η τελεία σημαίνει θα κάνει match όποιον χαρακτήρα να ναι, ο αστερίσκος θα επαναλάβει το προηγούμενο match άρα θα κάνω match τα πάντα μέχρι κάποιο 2ψηφιο hex άρα αυτό που έχεις στις παρενθέσεις θα είναι το 3F. Το 3 όμως και το F δεν είναι "οποιοιδήποτε χαρακτήρες" ? Άρα γίνονται και αυτοί match από το .* Το op δεν είναι οποιοιδήποτε χαρακτήρες ? Το .* τρώει όσο παραπάνω μπορεί οπότε κάνει match το mark%3Fop%3Dadd%26bkmk%, η παρένθεση σου κάνει match το 3D και το .* στο τέλος δεν κάνει match τίποτα. mark%3Fop%3Dadd%26bkmk%3D ^.*([0-9A-F]{2}).*$ Όταν σβήνεις το 3D, τότε γίνεται πάλι το ίδιο απλά με το bkmk να γίνεται match από το τελευταίο .* mark%3Fop%3Dadd%26bkmk% ^.*([0-9A-F]{2}).*$ Για να παίξει όπως το θέλεις, πρέπει να πεις ότι θέλεις non-greedy match το οποίο νομίζω δεν γίνεται στο sed (δεν θυμάμαι όμως στα σίγουρα). Ο τρόπος που χρησιμοποιείται συνήθως είναι να πεις στο sed που να σταματήσει μέσω αντιστροφής δηλαδή εδώ θέλεις να πάρει όσους χαρακτήρες υπάρχουν μέχρι και το πρώτο % και να σταματήσει στον αριθμό δηλαδή μπορείς να του πεις % echo "mark%3Fop%3Dadd%26bkmk%3D" | sed -r 's/^[^0-9A-F]*([0-9A-F]{2}).*$/\1/g' 3F Το [^0-9A-F] σημαίνει οποιοδήποτε χαρακτήρας δεν ανήκει στο παραπάνω σετ και ο αστερίσκος κλασικά επανάληψη του προηγούμενου pattern οπότε σου κάνει match μέχρι το 3 του 3F. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ilias95 Δημοσ. 11 Ιουνίου 2014 Share Δημοσ. 11 Ιουνίου 2014 Σ' ευχαριστώ για άλλη μια φορά.Δες αν μπορείς να απαντήσεις και στην ερώτηση σχετικά με το absolute path που έκανα edit στο προηγούμενο post μου. Μόλις είδα σε κάποιες σημειώσεις ότι το θεωρεί absolute path. Με την ίδια λογική θεωρείται και το $ΗΟΜΕ/whatever absolute; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα