jemadux Δημοσ. 11 Ιουλίου 2021 Δημοσ. 11 Ιουλίου 2021 (επεξεργασμένο) θελω μια βοηθεια ... εχω μερικά manga με την μοφρη Ch. 12 - name-ofchatpers με ενα σκριπτ #!/bin/sh chosen=$(ls ~/Documents/OP/ | dmenu -i -l 30 ) open=$(zathura ~/Documents/OP/$chosen ) [ -z "$chosen" ] && exit if [ -n "$1" ]; then xdotool type "$chosen" else printf "$chosen" | xclip -selection clipboard notify-send ""${chosen}" opened." if μεχρι εδώ σωστά δουλεύει όπως θέλω .. να το ρίχνω στο dmenu ... το μοναδικό προβλήμα που αντιμετωπίζω εδώ είναι το εξής Τα τεύχη είναι απο την μορφή Ch. 1 Romance Dawn.cbz Ch. 2 They Call Him Strawhat Luffy για να κάνω rename και να αποφυγω τα κενά μπορώ να χρησιμοποιήσω δυο μεθοδοδους πρώτη μεθοδος με την εντολή perl-rename rename 's/ /_/g' *.cbz και η δεύτερη μεθόδος for file in *.cbz; do mv "$file" "$(echo $file | sed 's/ /_/g')"; done μεχρι εδώ σωστά ..... στον file manager που έχω φαίνονται με την σειρα ... εντάξει το OP ειναι και 1000+ κεφαλαία ... αλλά στο dmenu θα παει με την σειρά 1000 1001 1002 100 101 102 103 θέλω με κάποιον τρόπο τώρα αμα πως θα κάνω το shortαρισμα να είναι πρώτα με την τρέχουσα αριθμητική σειρά ή να κάνω rename τα αρχεία απο να είναι πχ σε Στυλ Ch._0001_Romance_Dawn.cbz Ch._0002_They_Call_Him_Straw_Hat_Luffy.cbz οτι βοήθεια να το κάνω θα ειμαι υποχρέος Φυσικά μπορούμε τον αριθμο του τεύχους μπορούμε να το κάνουμε με το ls | awk '{print $2 }' Επεξ/σία 11 Ιουλίου 2021 από jemadux
imitheos Δημοσ. 12 Ιουλίου 2021 Δημοσ. 12 Ιουλίου 2021 % ls Ch_1000_Foo.cbz Ch_100_Tria.cbz Ch_105_kai_pinoun.cbz Ch_23_Kotsos.cbz Ch_1001_Bar.cbz Ch_102_Pulakia.cbz Ch_106_kafe.cbz Ch_1002_Baz.cbz Ch_104_Kathontai.cbz Ch_1_Mitsos.cbz % ls *cbz | awk -F_ '{printf "%s%04d", $1"_", $2; for(i=3;i<=NF;i++) printf "_%s", $i; printf "\n"}' Ch_1000_Foo.cbz Ch_1001_Bar.cbz Ch_1002_Baz.cbz Ch_0100_Tria.cbz Ch_0102_Pulakia.cbz Ch_0104_Kathontai.cbz Ch_0105_kai_pinoun.cbz Ch_0106_kafe.cbz Ch_0001_Mitsos.cbz Ch_0023_Kotsos.cbz Αν μετά τον αριθμό υπάρχει μόνο ένα πεδίο, τότε είναι πολύ πιο απλό χωρίς το for, απλά ένα σκέτο $3. Το for χρειάζεται για την περίπτωση πολλών πεδίων όπως το "_kai_pinoun". Μπορείς να προσθέσεις και το αρχικό ώστε να πάει κατευθείαν στο mv. % ls *cbz | awk -F_ '{printf "%s%04d", "mv "$0" "$1"_", $2; for(i=3;i<=NF;i++) printf "_%s", $i; printf "\n"}' mv Ch_1000_Foo.cbz Ch_1000_Foo.cbz mv Ch_1001_Bar.cbz Ch_1001_Bar.cbz mv Ch_1002_Baz.cbz Ch_1002_Baz.cbz mv Ch_100_Tria.cbz Ch_0100_Tria.cbz mv Ch_102_Pulakia.cbz Ch_0102_Pulakia.cbz mv Ch_104_Kathontai.cbz Ch_0104_Kathontai.cbz mv Ch_105_kai_pinoun.cbz Ch_0105_kai_pinoun.cbz mv Ch_106_kafe.cbz Ch_0106_kafe.cbz mv Ch_1_Mitsos.cbz Ch_0001_Mitsos.cbz mv Ch_23_Kotsos.cbz Ch_0023_Kotsos.cbz Το ίδιο φυσικά γίνεται και με cut, sed, bash, perl, python, κτλ γενικά ό,τι έχει printf. 2
jemadux Δημοσ. 12 Ιουλίου 2021 Δημοσ. 12 Ιουλίου 2021 2 ώρες πριν, imitheos είπε % ls Ch_1000_Foo.cbz Ch_100_Tria.cbz Ch_105_kai_pinoun.cbz Ch_23_Kotsos.cbz Ch_1001_Bar.cbz Ch_102_Pulakia.cbz Ch_106_kafe.cbz Ch_1002_Baz.cbz Ch_104_Kathontai.cbz Ch_1_Mitsos.cbz % ls *cbz | awk -F_ '{printf "%s%04d", $1"_", $2; for(i=3;i<=NF;i++) printf "_%s", $i; printf "\n"}' Ch_1000_Foo.cbz Ch_1001_Bar.cbz Ch_1002_Baz.cbz Ch_0100_Tria.cbz Ch_0102_Pulakia.cbz Ch_0104_Kathontai.cbz Ch_0105_kai_pinoun.cbz Ch_0106_kafe.cbz Ch_0001_Mitsos.cbz Ch_0023_Kotsos.cbz Αν μετά τον αριθμό υπάρχει μόνο ένα πεδίο, τότε είναι πολύ πιο απλό χωρίς το for, απλά ένα σκέτο $3. Το for χρειάζεται για την περίπτωση πολλών πεδίων όπως το "_kai_pinoun". Μπορείς να προσθέσεις και το αρχικό ώστε να πάει κατευθείαν στο mv. % ls *cbz | awk -F_ '{printf "%s%04d", "mv "$0" "$1"_", $2; for(i=3;i<=NF;i++) printf "_%s", $i; printf "\n"}' mv Ch_1000_Foo.cbz Ch_1000_Foo.cbz mv Ch_1001_Bar.cbz Ch_1001_Bar.cbz mv Ch_1002_Baz.cbz Ch_1002_Baz.cbz mv Ch_100_Tria.cbz Ch_0100_Tria.cbz mv Ch_102_Pulakia.cbz Ch_0102_Pulakia.cbz mv Ch_104_Kathontai.cbz Ch_0104_Kathontai.cbz mv Ch_105_kai_pinoun.cbz Ch_0105_kai_pinoun.cbz mv Ch_106_kafe.cbz Ch_0106_kafe.cbz mv Ch_1_Mitsos.cbz Ch_0001_Mitsos.cbz mv Ch_23_Kotsos.cbz Ch_0023_Kotsos.cbz Το ίδιο φυσικά γίνεται και με cut, sed, bash, perl, python, κτλ γενικά ό,τι έχει print Ευχαριστώ πολύ
jemadux Δημοσ. 13 Μαρτίου 2023 Δημοσ. 13 Μαρτίου 2023 (επεξεργασμένο) σαν το synaptic αλλα σε τερματικό αλλά θέλει να κάνεις εγκατάσταση το fzf #!/bin/bash apt-cache search "" |\ sort |\ cut --delimiter " " --fields 1 |\ fzf --multi --exact --cycle --reverse --preview 'apt-cache search {1}' |\ xargs -r sudo apt install -yy Επεξ/σία 13 Μαρτίου 2023 από jemadux
jemadux Δημοσ. 10 Σεπτεμβρίου 2023 Δημοσ. 10 Σεπτεμβρίου 2023 (επεξεργασμένο) τιποτα Επεξ/σία 10 Σεπτεμβρίου 2023 από jemadux
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα