Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

θελω μια βοηθεια ... 

εχω μερικά 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 }'

 

Επεξ/σία από jemadux
  • Απαντ. 889
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.
% 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.

  • Like 2
Δημοσ.
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

Ευχαριστώ πολύ

  • 1 χρόνο αργότερα...
Δημοσ. (επεξεργασμένο)

σαν το 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

 

Επεξ/σία από jemadux
  • 5 μήνες μετά...

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...