imitheos Δημοσ. 26 Απριλίου 2014 Δημοσ. 26 Απριλίου 2014 Έχεις δίκιο. Υ.Γ:Χρόνια πολλά σε όλους Είναι μερικές συντάξεις εντολών όπως η παραπάνω με την `ls` που σου κολλάνε και τις γράφεις έτσι ενώ ξέρεις ότι είναι περιττές. Ένα από αυτά που την πατάω εγώ είναι το grep. Πάντα θα γράψω "cat αρχείο | grep τάδε" αντί για σκέτο "grep τάδε αρχείο"
martinoff Δημοσ. 26 Απριλίου 2014 Δημοσ. 26 Απριλίου 2014 μαλλον δεν το εξήγησα καλά θελω να βαλει απόστροφο σε ολα το files 'file' οπως και στο checksum thanks again βασικά είναι περίπου αυτό αλλά με ~1000 fonts από κάτω και έχασα το PKGBUILD https://aur.archlinux.org/packages/tt/ttf-win7-fonts/PKGBUILD
bubuntu Δημοσ. 26 Απριλίου 2014 Δημοσ. 26 Απριλίου 2014 δοκιμαστε να ακουσετε ραδιο με τη κονσολα, με την εντολη mplayer, και βαλτε μετα ip, του σταθμου, και θα ξετρελαθειτε με το τι μπορει να κανει, αυτο το unixaki
mad-proffessor Δημοσ. 26 Απριλίου 2014 Δημοσ. 26 Απριλίου 2014 μαλλον δεν το εξήγησα καλά θελω να βαλει απόστροφο σε ολα το files 'file' οπως και στο checksum thanks again βασικά είναι περίπου αυτό αλλά με ~1000 fonts από κάτω και έχασα το PKGBUILD https://aur.archlinux.org/packages/tt/ttf-win7-fonts/PKGBUILD με sed
Ilias95 Δημοσ. 26 Απριλίου 2014 Δημοσ. 26 Απριλίου 2014 Ως γνωστόν με $1, $2 κτλ εμφανίζω το αντίστοιχο cla. Έστω ότι έχω μια μεταβλητή με όνομα a και τιμή 2. Το "echo $a" προφανώς θα εμφανίσει την τιμή της μεταβλητής a. Υπάρχει τρόπος να εμφανίσω το 2ο argument με κάποιον τρόπο όταν το 2 είναι αποθηκευμένο σε μεταβλητή;
imitheos Δημοσ. 27 Απριλίου 2014 Δημοσ. 27 Απριλίου 2014 Ως γνωστόν με $1, $2 κτλ εμφανίζω το αντίστοιχο cla. Έστω ότι έχω μια μεταβλητή με όνομα a και τιμή 2. Το "echo $a" προφανώς θα εμφανίσει την τιμή της μεταβλητής a. Υπάρχει τρόπος να εμφανίσω το 2ο argument με κάποιον τρόπο όταν το 2 είναι αποθηκευμένο σε μεταβλητή; % export LL=2 % ga() { > echo ${!LL} > } % ga % ga mitsos kotsos kotsos % export LL=1 % ga mitsos kotsos mitsos Με άλλα λόγια τρέχεις ${!όνομα_μεταβλητής} και το αποτέλεσμα θα είναι σαν να είχες τρέξει ${τιμή_της_μεταβλητής}
Ilias95 Δημοσ. 27 Απριλίου 2014 Δημοσ. 27 Απριλίου 2014 Ευχαριστώ πολύ!Τελικά ανακάλυψα και την shift που είναι πιο βολική σ' αυτό που θέλω να κάνω, αλλά και το παραπάνω είναι χρήσιμο για μελλοντική χρήση.
Technology fan Δημοσ. 9 Μαΐου 2014 Δημοσ. 9 Μαΐου 2014 Καλησπέρα, Έχω μια ιδέα (αν το κάνω θα το ανεβάσω σε κάποιο repository for free): "να φτιάξω ένα απλό gui για κάθε μια εντολή του bash shell" 1) ναι ξέρω με μια πρώτη όψη φαίνεται χαζό, καλύτερα να κάτσει κάποιος να το εκτελέσει από terminal αλλά για μερικούς dummy χρήστες μπορεί να είναι χρήσιμο. ερωτήματα και προβληματισμοί μου: 2) ξέρει κάποιος να μου πει αν υπάρχει κάποια δομή στα commands του bash shell? ωστε να παίρνω : α) την περιγραφή της εντολής β) απαραίτητα arguments της εντολής, γ) και τις ιδιότητες τους (αρχεία), ωστε να εμφανίζω κατάλληλα gui elements (check box για parameters, text area και button για επιλογή αρχείου, text area για την περιγραφή κτλπ κτλπ ) Ακούω ιδέες... Ευχαριστώ
SV8XXX Δημοσ. 9 Μαΐου 2014 Δημοσ. 9 Μαΐου 2014 Καποτε ξεκινησα να φτιαξω κατι σαν control center για το openbox μου. Για να ειναι ολα συμμαζεμενα αλλα το παρατησα. #!/bin/bash echo " Edit system files" # echo select i in "sources.list?" "fstab?" "Quit" do case $i in "sources.list?") medit /etc/apt/sources.list;; "fstab?") medit /etc/fstab ;; "Quit") echo "Bye $USER" all its ok... ; exit;; esac done Χρησιμο ειναι ξεκινα το. Παντως υπαρχει κατι αναλογο Site: cli companion
Ilias95 Δημοσ. 29 Μαΐου 2014 Δημοσ. 29 Μαΐου 2014 Έχω ένα αρχείο το οποίο περιέχει μερικές κενές γραμμές και θέλω να τις σβήσω. Προσπαθώ να κάνω κάτι τέτοιο: cat file.txt | tr -s '\n' > file.txt Το αρχείο που παίρνω τελικά όμως είναι κενό.Νομίζω ότι αυτό συμβαίνει γιατί το piping λειτουργεί παράλληλα και την ώρα που διαβάζω το αρχείο ταυτόχρονα πάω να γράψω και σ' αυτό οπότε σβήνονται τα περιεχόμενα του και η cat διαβάζει ένα κενό αρχείο. Αν μπορεί ας επιβεβαιώσει κάποιος ότι όντως αυτό συμβαίνει.Τελικά πως μπορώ να λύσω το πρόβλημα, ώστε να πετύχω αυτό που θέλω; Δοκίμασα με grouping χρησιμοποιώντας παρενθέσεις αλλά δεν δούλεψε.
tr3quart1sta Δημοσ. 29 Μαΐου 2014 Δημοσ. 29 Μαΐου 2014 grep -v '^$' file.txt | sponge file.txt το προβλημα σου ειναι οτι εχεις input και output το ιδιο αρχειο, γιαυτο εχεις μετα κενο αρχειο... το sponge το διορθωνει αυτο (αλλα μαλλον θα πρεπει να εγκαταστησεις το moreutils)
Ilias95 Δημοσ. 29 Μαΐου 2014 Δημοσ. 29 Μαΐου 2014 Ευχαριστώ για την απάντηση, αλλά το sponge όντως δεν υπάρχει στο σύστημα μου by default. Μήπως υπάρχει κάποια εναλλακτική με κάποιο shell built-in ή κάποια άλλη εντολή;Το να δημιουργήσω ένα δεύτερο αρχείο και να το μετονομάσω μετά δεν μ' αρέσει σαν workaround.
markelos Δημοσ. 29 Μαΐου 2014 Δημοσ. 29 Μαΐου 2014 http://www.cyberciti.biz/faq/using-sed-to-delete-empty-lines/ sed -i '/^$/d' file.txt Το ^$ κάνει match το τίποτα (αρχή-τέλος χωρίς κάτι ενδιάμεσα), με το d τα σβήνεις και το i κάνει inline replacement. ή αν έχεις tabs/spaces http://stackoverflow.com/a/16414489/2137281 sed -i '/^\s*$/d' file.txt που σημαίνει ξεκινάει (^) με whitespace character (\s) μία ή περισσότερες φορές (*) και τελειώνει εκεί ($). 1
Ilias95 Δημοσ. 29 Μαΐου 2014 Δημοσ. 29 Μαΐου 2014 Ευχαριστώ ξανά αλλά και πάλι εδώ πέρα όλη τη δουλειά την κάνει το -i στον sed.Στην πραγματικότητα δεν με νοιάζει το να αδειάσω τις κενές γραμμές από ένα αρχείο, ξέρω διάφορους τρόπους να το κάνω.Αυτό που με ενδιαφέρει πραγματικά είναι γενικά το φιλτράρισμα με οποιαδήποτε φίλτρα-εντολές έχοντας σαν stdin και stdout το ίδιο αρχείο. Ένα general case. (cat file | filtercmd params | filtercmd params | filtercmd parms) > file
imitheos Δημοσ. 29 Μαΐου 2014 Δημοσ. 29 Μαΐου 2014 Ευχαριστώ ξανά αλλά και πάλι εδώ πέρα όλη τη δουλειά την κάνει το -i στον sed. Στην πραγματικότητα δεν με νοιάζει το να αδειάσω τις κενές γραμμές από ένα αρχείο, ξέρω διάφορους τρόπους να το κάνω. Αυτό που με ενδιαφέρει πραγματικά είναι γενικά το φιλτράρισμα με οποιαδήποτε φίλτρα-εντολές έχοντας σαν stdin και stdout το ίδιο αρχείο. Ένα general case. (cat file | filtercmd params | filtercmd params | filtercmd parms) > file Το άνοιγμα του αρχείου για το redirection θα γίνει πρώτα για αυτό τα δεδομένα του δεν υπάρχουν όταν πάει να τρέξει το cat. Για να μην σβήνεται το αρχείο πρέπει να χρησιμοποιήσεις μια μορφή που να αναγκάζει το shell να τρέξει πρώτα το κομμάτι των εντολών. % echo "$(cat file | filtercmd blah blah)" > file Ένας τρόπος για να το κάνεις είναι ο παραπάνω. Το κομμάτι του $() αναγκαστικά θα τρέξει πρώτο και μετά με την βοήθεια του echo πετάς την έξοδο στο ίδιο αρχείο. Άλλος τρόπος είναι με την χρήση αγκύλων {} και το στυλ { filtercmd blah blah > file } < file και υπάρχουν πολλοί ακόμη τρόποι που όλοι όμως έχουν ένα κοινό. Δεν δουλεύουν σωστά. Ο μόνος δόκιμος τρόπος είναι να χρησιμοποιήσεις ένα προσωρινό αρχείο πχ όπως φαίνεται παρακάτω. cat file | filtercmd params | filtercmd params | filtercmd parms > file.out && mv file.out file 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα