Τα πάντα για το Bash...

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό eliasps » 06 Φεβ 2014, 04:02

@vagrale13 Δεν το γνώριζα καν. Και ναι, λειτούργησε!
Ευχαριστώ πολύ! :clap:
Άβαταρ μέλους
eliasps
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4017
Εγγραφή: 16 Δεκ 2011, 22:25
Τοποθεσία: Αθήνα, Αττική
Launchpad: eliasps
IRC: eliasps
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό Ilias95 » 06 Φεβ 2014, 18:54

@eliasps
Πάντως σε παρόμοια περίπτωση και αν δεν θες να παιδεύεσαι πολύ-πολύ υπάρχουν mass file renaiming tools όπως τα gprename, pyrenamer, krename κα.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό eliasps » 06 Φεβ 2014, 21:03

Ilias95 έγραψε:@eliasps
Πάντως σε παρόμοια περίπτωση και αν δεν θες να παιδεύεσαι πολύ-πολύ υπάρχουν mass file renaiming tools όπως τα gprename, pyrenamer, krename κα.

Αν και σπάνια μου τυχαίνουν τέτοιες περιπτώσεις, θα κοιτάξω τις εφαρμογές και θα βάλω μία καλού κακού στον υπολογιστή, για παν ενδεχόμενο.
Ευχαριστώ!
Άβαταρ μέλους
eliasps
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4017
Εγγραφή: 16 Δεκ 2011, 22:25
Τοποθεσία: Αθήνα, Αττική
Launchpad: eliasps
IRC: eliasps
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό malos » 21 Μάιος 2014, 14:03

Γεια σας φίλοι.
Ζητώ βοήθεια για τη δημιουργία ενός σεναρίου. Σαρώνω κάποιες σελίδες με κείμeνο και τις σώζω σε μορφή tiff. Με το tesseract τις μετατρέπω σε αρχεία txt.
Να σχολιασω εδώ ότι γίνεται πολύ ικανοποιητική δουλειά. Άντε να γίνει ένα μικρό σφάλμα σε ολόκληρη σελίδα. Για παράδειγμα σε κάποια λέξη το γράμμα "β" μου το έβγαλε ως
"8", αλλά μικρό το κακό. Θα τα ανοίξω μετά με κάνα libre officce και θα δουλέψω τον ορθογράφο και όλα καλά.
Tesseract λοιπόν εγγύηση :thumbup: Πλήρως ικανοποιημένος.

Το ζητούμενό μου είναι το εξής:
Πρόκειται να σαρώσω μπόλικες σελίδες και θα δημιουργηθούν μπόλικα tiff αρχεία. Κάτα το σώσιμο τα ονομάζω με αριθμούς 1, 2, 3, 4 κλπ.

Για να μη δίνω κάθε φορά την εντολή

Κώδικας: Επιλογή όλων
tesseract 1.tiff text1 -l ell


όπου θα μου φτιάξει το αρχείο text1 όπως βλέπετε,

μπορώ να φτιάξω ένα σκριπτάκι όπου να πάρει όλα τα αρχεία tiff από τον φάκελο και να δημιουργήσει τα αντίστοιχα txt ; Με το αντίστοιχο όνομα, ξέρετε.

Ξέρω ότι γίνεται και ότι έιναι εύκολο. Αλλά δεν πάει το μυαλό μου πως να το φτιάξω. Δεν ξέρω και πολλά. Και εντάξει στην ουσία ζητάω έτοιμο σκριπτάκι. Συγνώμη δηλαδή δεν είναι ακριβώς τεμπελιά.... αλλά δεν μπορώ ρε παιδιά.
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό malos » 21 Μάιος 2014, 14:59

Όλα εντάξει παίδες. Το έψαξα λίγο και το κατάφερα μόνος μου.

Κώδικας: Επιλογή όλων
#!/bin/bash
espeak -v el -s 130 "Ηη μετατροπή σε αρχεία κειμένου, Άρχισε"
notify-send -i /usr/share/pixmaps/dvd95/properties.png "Η μετατροπή άρχισε......."
for file in *.tiff; do tesseract "$file" "`echo $file | sed -e 's/\.tiff$/\ /'`" -l ell; done

notify-send -i /usr/share/pixmaps/dvd95/run.png "Η μετατροπή τελείωσε"
espeak -v el -s 130 "Ηη ΜΕΤΑΤΡΟΠΉ, τελείωσε."


Δουλεύει μια χαρά. Πάω να σαρώσω σελίδες τώρα. Να είστε καλά :)
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό malos » 23 Μάιος 2014, 21:09

Ένα καινούργιο θεματάκι που έχω. Το παρακάτω σκριπτ το έκανα με σκοπό με σκοπό: να πατάω Alt+F2 και να γράφω μέσα zz english text όπου θα μου ανοίγει ο firefox κατευθείαν στη σελίδα μετάφρασης της google έχοντας μάλιστα και τις αγγλικές λέξεις έτοιμες και μεταφρασμένες.
Το zz είναι το όνομα που έχω δώσει στο script (βολικό γιατί πληκτρολογείται εύκολα και γρήγορα). Το έκανα εκτελέσιμο και το αντέγραψα στο /usr/bin .

Δουλεύει μεν αλλά μόνο για μία λέξη. Αν θέλω ένα μεγάλο κείμενο που αυτός είναι και ο σκοπός, να κάνω ένα γρήγορο paste με το μεσαίο κλικ ξέρετε, δεν το πιάνει. Μόνο την πρώτη λέξη μου δίνει.
Πως να το διορθώσω;

Κώδικας: Επιλογή όλων


#!/bin/bash
if [ $# -lt 2 ]; then
word=$1
notif=`firefox 'https://translate.google.gr/?hl=el&tab=wT#en/el/'$1`
else
word=`echo $@`
notif=`firefox 'https://translate.google.gr/?hl=el&tab=wT#en/el/'$word`
fi
exit 0;

Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό fkol k4 » 23 Μάιος 2014, 21:37

malos έγραψε:Ένα καινούργιο θεματάκι που έχω. Το παρακάτω σκριπτ το έκανα με σκοπό με σκοπό: να πατάω Alt+F2 και να γράφω μέσα zz english text όπου θα μου ανοίγει ο firefox κατευθείαν στη σελίδα μετάφρασης της google έχοντας μάλιστα και τις αγγλικές λέξεις έτοιμες και μεταφρασμένες.
Το zz είναι το όνομα που έχω δώσει στο script (βολικό γιατί πληκτρολογείται εύκολα και γρήγορα). Το έκανα εκτελέσιμο και το αντέγραψα στο /usr/bin .

Δουλεύει μεν αλλά μόνο για μία λέξη. Αν θέλω ένα μεγάλο κείμενο που αυτός είναι και ο σκοπός, να κάνω ένα γρήγορο paste με το μεσαίο κλικ ξέρετε, δεν το πιάνει. Μόνο την πρώτη λέξη μου δίνει.
Πως να το διορθώσω;

Αν βάλεις τις μεταβλητές σε διπλά εισαγωγικά;
Μορφοποιημένος Κώδικας: Επιλογή όλων
#!/bin/bash
if [ $# -lt 2 ]; then
word=$1
notif=`firefox 'https://translate.google.gr/?hl=el&tab=wT#en/el/'"$1"`
else
word=`echo $@`
notif=`firefox 'https://translate.google.gr/?hl=el&tab=wT#en/el/'"$word"`
fi
exit 0;
Γνώσεις: Linux: ★★★☆☆ Προγραμματισμός: ★☆☆☆☆ Αγγλικά: ★★★★★
Η υπογραφή μου
Οδηγίες για αρχάριους στο Ubuntu (12.04 LTS)Οδηγοί του forum
Άβαταρ μέλους
fkol k4
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4829
Εγγραφή: 28 Φεβ 2011, 22:56
Τοποθεσία: Αθήνα
Launchpad: fkol-k4
IRC: fkol_k4
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό Ilias95 » 23 Μάιος 2014, 21:53

@malos
Το πρόβλημα είναι ότι δεν κάνεις encode το url πριν τον χρησιμοποιήσεις.
Το url σε ένα http request δεν περιέχει κενά ή άλλους χαρακτήρες. Αυτοί μετατρέπονται πριν σταλθούν. Πχ. το "www.blabla.gr/hello world" θα αντικατασταθεί με "www.blabla.gr/hello%20world", δηλαδή ο χαρακτήρας κενό μετατρέπεται σε %20. Για να το δεις στην πράξη αντέγραψε απ' τον browser σου ένα τυχαίο url που περιέχει κενά και επικόλλησε το στο shell και θα δεις ότι δεν θα υπάρχουν κενά.

Το πρόβλημα λοιπόν στο script είναι ότι δεν φροντίζεις να κάνεις το encoding. Μία σύντομη λύση που βρήκα είναι σε perl.
Τα if, else που βάζεις επίσης μου φαίνονται περιττά οπότε ο κώδικας γίνεται:
Κώδικας: Επιλογή όλων
#!/bin/bash
encoded_txt=$(echo -n "$@" | perl -pe's/([^-_.~A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg');
url="https://translate.google.gr/?hl=el#en/el/$encoded_txt"
firefox "$url"
exit 0;
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό malos » 23 Μάιος 2014, 22:40

:clap: :clap: :clap: :clap:
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό malos » 04 Ιουν 2014, 17:28

Τρέχω κάποιο σκριπτ που λέγεται DOMATIO ΚΑΤΩ και όταν πληκτρολογώ ps -A μου δίνει

Κώδικας: Επιλογή όλων
[17349 ? 00:00:00 DOMATIO ΚΑ?


Θέλω με ένα σκριπτάκι που θα του κάνω κλικ να τρέχει ένα άλλο σκριπτ που λέγεται DOMATIO ΠΑΝΩ.

Έφτιαξα κάτι για να αφαιρώ από την έξοδο της ps τους αριθμούς "17349 ? 00:00:00" και τα κενά που παρεμβάλονται αλλά ξέρω ότι είναι λάθος τρόπος.

Κώδικας: Επιλογή όλων
..............
if trexon_senario=$ ps -A | grep ΚΑ | sed 's/[^ ][^ ]*//' | sed 's/[^ ][^ ]*//' | sed 's/[^ ][^ ]*//' | sed 's/ //' | sed 's/ΚΑΤΩ/ΠΑΝΩ/'
..............
.......


Καταφέρνω να διώξω το pid και το 00:00:00 που βλέπετε και στην έξοδο της ps. Μέτρησα και δέκα κενά διαστήματα και κατάφερα να αφήσω από την έξοδο μόνο τις λέξεις "DOMATIO ΚΑΤΩ" και μετά να τις μετατρέπω στη φράση "DOMATIO ΠΑΝΩ" Ξέρω ότι είναι λάθος γιατί δεν θα μου δίνει πάντα η ps το ίδιο πράγμα.

Με ποιο τρόπο θα αφαιρώ όλους τους αριθμούς πριν από τη φράση DOMATIO ΚΑΤΩ και πω μετά θα το μετατρέπω στη φράση "DOMATIO\ ΠΑΝΩ";
Την πλάγια κάθετο την θέλω γιατί υπάρχει ένα άλλο σκριπτ που θέλω να τρέξω μέσα από αυτό που λέω και λέγεται DOMATIO ΠΑΝΩ.
Θέλω να το πάρω από την grep οπωσδήποτε και αφού κουρευτεί η γραμμή να δώσω κάποιο exec ώστε να τρέξει το άλλο σκριπτ.
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι

cron