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

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

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

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

Δημοσίευσηαπό pros » 06 Ιούλ 2009, 15:21

Θα βρεις την τεκμηρίωση του zenity στα ελληνικά, εδώ.
10.04 / 12.04 64bit
Άβαταρ μέλους
pros
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3534
Εγγραφή: 28 Ιαν 2009, 22:28
IRC: sterios
Εκτύπωση

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

Δημοσίευσηαπό sokoban4ever » 06 Ιούλ 2009, 16:27

Off topic:
@Ntelispak
Το Picard έχει την δυνατότητα και για τα wma
δες μια εδώ:
http://musicbrainz.org/doc/PicardTagger
Υπάρχει και στα αποθετήρια
Λογικά πρέπει αν δεις τον κώδικα να δεις πώς το κάνει
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

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

Δημοσίευσηαπό Ntelispak » 07 Ιούλ 2009, 12:37

Μετατροπή wma σε mp3
08/07/2009: Διόρθωση, έτσι ώστε να μεταφέρεται και το είδος. Thanks to: sokoban4ever
Η καινούργια έκδοση, πολύ πιο γρήγορη χωρίς ενδιάμεση μετατροπή σε wav και διατηρεί και τα tags. Χρησιμοποιεί ffmpeg αντί για mplayer και lame. Θα κοιτάξω μήπως το ντύσω με zenity κάποια στιγμή
Κώδικας: Επιλογή όλων
################################## wma2mp3.sh ##################################
# Author : Karapanagiotis Pantelis #
# Released On : Tuesday 07 July 2009 #
# Version : 0.2 #
# Desription : Converts all wma files in the current folder to mp3 ones. It #
# is able to convert all files, independently of the characters #
# contained in their names. Track tags are preserved after the #
# conversion process. #
# Dependencies : This script depends on ffmpeg to recode the original wma to #
# a mp3 one. You need to have an ffmpeg installation with mp3 #
# encoding and the mp3lame library enabled. The line commands #
# for enabling these options during configuration of the #
# installation are --enable-libmp3lame and --enable-encoder=mp3.#
# The script will otherwise not work. For more information check#
# with the ffmpeg website. It also depends on python and #
# specifically on the mutagen module. Install in debian-like #
# enviroments with sudo apt-get install python3 #
# You also need to have the accompanying python scrint that #
# copies tags from the original files. The tagcop.py is also #
# published under GNU License #
# Usage : In order to avoid copying the file to every folder you want to#
# use it, do the following: #
# sudo cp wma2mp3.sh /usr/local/bin/wma2mp3 #
# sudo cp tagcop.py /usr/local/bin/tagcop #
# cd /usr/local/bin #
# sudo chmod +x tagcop #
# sudo chmod +x wma2mp3 #
# Then cp to the folder you want to use the script and call #
# wma2mp3 #
# TODO : >>Check if user aborted some conversions >>Let user choose #
# bitrare. >>Enable more conversions #
# COPYRIGHT : This program is free software: you can redistribute it and/or #
# modify it under the terms of the GNU General Public License as#
# published by the Free Software Foundation, either version 3 of#
# the License, or (at your option) any later version. This #
# program is distributed in the hope that it will be useful, but#
# WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
################################################################################
#!/bin/bash

echo Executing $(basename $0)

#Variable Declarations
converted=0
found=0

#Converting wma to mp3
for i in *.wma; do
found=$(expr $found + 1)
mv "$i" temp.wma
ffmpeg -i temp.wma -y -qscale 1 -ab 192k -ar 48000 -ac 2 temp.mp3


if [ $? -eq 0 ]; then
echo "$i" successfully converted to "${i%.wma}.mp3"
converted=$(expr $converted + 1)
else
echo failed recoding "$i"
fi

mv temp.mp3 "${i%.wma}.mp3"
mv temp.wma "$i"

#Copying Tags from original files
tagcop "$i" "${i%.wma}.mp3"
done

#Removing temporary files
rm -r temp.wav

echo $converted\\$found files successfully converted
echo Would you like to remove the files with wma extension? [y\\n]?

#Remove wma file if y is given
while read inputline; do
in="$inputline"
if [ $in == y ] || [ $in = n ]; then
if [ $in == y ]; then
echo Removing all files with wma extension:
find $pwd -name \*.wma -print -delete
fi
break
else
echo Unexpected input sequence. Pleaze try again: [y\\n]?
fi
done

echo Exiting $(basename $0)

Τα mp3 που παράγονται έχουν πολύ υψηλή ανάλυση που σημαίνει οτι ποιάνουν και πολύ χώρο. Το τελικό αρχείο δεν μπορεί να έχει καλύτερη πιότητα ήχου από το αρχικό. Για να μειώσετε το bitrate, για παράδειγμα σε 128kbits/s, και την sampling frequency σε 48.000Hz (πιο πάνω είναι 96.000Hz επιδή ο ήχος έιναι δικάναλος) αντικαταστείστε την αντίστοιχη γραμμή του wma2mp3.sh με αυτή:
fmpeg -i temp.wma -y -qscale 1 -ab 128k -ar 24000 -ac 2 temp.mp3

Για να μην χαθούν τα tags χρειάζεται και αυτό. Είναι scriptάκι python και όχι shell
Κώδικας: Επιλογή όλων
#!/usr/bin/env python
################################## tagcop.py ###################################
# Author : Karapanagiotis Pantelis #
# Released On : Tuesday 07 July 2009 #
# Version : 0.1.1 #
# Desription : Copies tags from a wma to a mp3 audio file. #
# Dependencies : Uses mutagen module #
# Usage : Call with tagcop.py filename.wma filename.mp3 #
# COPYRIGHT : This program is free software: you can redistribute it and/or #
# modify it under the terms of the GNU General Public License as#
# published by the Free Software Foundation, either version 3 of#
# the License, or (at your option) any later version. This #
# program is distributed in the hope that it will be useful, but#
# WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
################################################################################

#Loading Modules
from mutagen.asf import ASF
from mutagen.mp3 import MP3
from mutagen.id3 import ID3, TIT2, TPE1, TALB, TCOM, TRCK, TYER, TCON
from sys import argv, exit
import os

#Checking Command Line Arguments
if len(argv) != 3:
print("Wrong number of command line arguments. Two arguments must be used.")
exit()

#Checking File Extensions
if argv[1][-3:] != "wma":
print("First argument must be of wma type")
exit()
if argv[2][-3:] != "mp3":
print("Second argument must be of mp3 type")
exit()

wma_fname = os.getcwd() + '/' + argv[1]
mp3_fname = os.getcwd() + '/' + argv[2]

wma = ASF(wma_fname)
mp3 = MP3(mp3_fname)

#Copying Tags
mp3['TRCK'] = TRCK(encoding=3, text=wma['WM/TrackNumber'])
mp3['TIT2'] = TIT2(encoding=3, text=wma['Title'])
mp3['TPE1'] = TPE1(encoding=3, text=wma['Author'])
mp3['TALB'] = TALB(encoding=3, text=wma['WM/AlbumTitle'])
mp3['TCOM'] = TCOM(encoding=3, text=wma['WM/Composer'])
mp3['TYER'] = TYER(encoding=3, text=wma['WM/Year'])
mp3['TCON'] = TCON(encoding=3, text=wma['WM/Genre'])

mp3.save()

Spoiler: show
Δυστυχώς υπάρχει ασυμβατότητα μεταξύ των tags των wma και των mp3 στο πεδίο των ειδών και δεν μπόρεσα να το κάνω να διατηρείται.
08/07/2009: Δεν ισχύει κάτι τέτοιο.
Τελευταία επεξεργασία από Ntelispak και 08 Ιούλ 2009, 01:17, έχει επεξεργασθεί 1 φορά/ες συνολικά
Οδηγείες ΧρήσηςΤutorialsΑναζήτηση
⇛ Linux: noob ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Πολύ Καλά
⇛ Xubuntu 9.04 (Jaunty Jackalope) 64bit
⇛ Intel Core2Duo E6600 (2.4GHZ 4MB) ┃ Asus P5B 965 ┃ 2x1GB DDR2 667MHZ ┃ Radeon X1600P 256MB ┃ MAudio Audiophile 192
Άβαταρ μέλους
Ntelispak
babeTUX
babeTUX
 
Δημοσιεύσεις: 36
Εγγραφή: 19 Ιουν 2009, 20:15
Τοποθεσία: Μεταμόρφωση Αττικής
Εκτύπωση

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

Δημοσίευσηαπό sokoban4ever » 08 Ιούλ 2009, 00:31

Ntelispak έγραψε:...
Δυστυχώς υπάρχει ασυμβατότητα μεταξύ των tags των wma και των mp3 στο πεδίο των ειδών και δεν μπόρεσα να το κάνω να διατηρείται.

:think: Τι εννοείς δώσε ένα παράδειγμα ;
Δεν γίνεται να το ξεγελάσεις και να το σώσεις σε δικό σου tag με το όνομα "είδος" μήπως ( τελείως πρόχειρο παράδειγμα φέρνω);
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

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

Δημοσίευσηαπό Ntelispak » 08 Ιούλ 2009, 01:06

Λάθος μου sokoban4ever. Η δημοσίευση σου με παρακίνησε να το ψάξω λίγο καλύτερα. Μια χαρά λειτουργεί τελικά, απλά τα wma αρχεία που έκανα τις δοκιμές νωρίτερα τύχαινε να μην έχουν καταχωρήσεις για το είδος :oops: . Το δοκίμασα τώρα σε άλλα αρχεία και δούλεψε κανονικά. Thanx :thumbup: για την παρατήρηση, θα το είχα αφήσει αν δεν το έλεγες. Διορθώνω τον κώδικα και την προηγούμενη δημοσίευση μου.
Οδηγείες ΧρήσηςΤutorialsΑναζήτηση
⇛ Linux: noob ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Πολύ Καλά
⇛ Xubuntu 9.04 (Jaunty Jackalope) 64bit
⇛ Intel Core2Duo E6600 (2.4GHZ 4MB) ┃ Asus P5B 965 ┃ 2x1GB DDR2 667MHZ ┃ Radeon X1600P 256MB ┃ MAudio Audiophile 192
Άβαταρ μέλους
Ntelispak
babeTUX
babeTUX
 
Δημοσιεύσεις: 36
Εγγραφή: 19 Ιουν 2009, 20:15
Τοποθεσία: Μεταμόρφωση Αττικής
Εκτύπωση

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

Δημοσίευσηαπό medigeek » 08 Ιούλ 2009, 09:33

Off topic:
Υπάρχει έτοιμη λύση με ένα nautilus script :mrgreen:
viewtopic.php?f=24&t=5965&p=58693#p58690
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

sed

Δημοσίευσηαπό malos » 20 Αύγ 2009, 21:12

echo 45 μάστοροι κι 60 μαθητάδες | sed 's/[^[:digit:]\.]//g'

δίνει :

4560

Τι πρέπει να κάνω για να μου δώσει :

45:60

εννοώ την άνω κάτω τελεία ανάμεσα.

Υ.Γ. Εκτός από το man της sed, ξέρετε κάτι πιο ελληνικό , με παραδείγματα, που να με εισάγει μια ιδέα στη sed ;

Τις ευχαριστίες μου. :bow:
Επεξεργαστής: 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...

Δημοσίευσηαπό medigeek » 20 Αύγ 2009, 22:25

Παρά να ζορίζεσαι με το sed, έχεις γλώσσες προγραμματισμού που κάνουν περίφημα τη δουλειά σε μια γραμμή :twisted:

Δεν ξέρω τι ακριβώς γυρεύεις, ορίστε μια γενικοποιημένη λύση σε perl:
Κώδικας: Επιλογή όλων
$ echo 45 μάστοροι κι 60 μαθητάδες | perl -ne 'while (/([0-9]+)/g) { push(@array, $1); }; print join(":",@array)."\n";'
45:60

$ echo 60 a b c 45 μια χαρά τα πάμε 90 80 | perl -ne 'while (/([0-9]+)/g) { push(@array, $1); }; print join(":",@array)."\n";'
60:45:90:80

$ echo 1+ 100--- πιανει και αριθμούς ανάμεσα σε άλλους χαρακτήρες. ====ουυυυ150=== | perl -ne 'while (/([0-9]+)/g) { push(@array, $1); }; print join(":",@array)."\n";'
1:100:150


:geek: :angel:

malos έγραψε:
Υ.Γ. Εκτός από το man της sed, ξέρετε κάτι πιο ελληνικό , με παραδείγματα, που να με εισάγει μια ιδέα στη sed ;


Δεν ξέρω για ελληνικούς οδηγούς αλλά έχω μερικές ιστοσελίδες φυλαγμένες:

sed one-liners:
http://sed.sourceforge.net/sed1line.txt
sed tutorial:
http://www.grymoire.com/Unix/Sed.html

perl one-liners:
http://www.unixguide.net/unix/perl_oneliners.shtml
http://sial.org/howto/perl/one-liner/
http://www.ajs.com/ajswiki/Perl_one-liners
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

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

Δημοσίευσηαπό malos » 20 Αύγ 2009, 22:35

@medigeek

:bow: :bow: :bow:
Επεξεργαστής: 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...

Δημοσίευσηαπό Nisok » 17 Σεπ 2009, 21:28

Καλησπέρα παιδία

Επειδή έπαθα μια ζημιά με δεδομένα της δουλειάς θα ήθελα μια ΒΟΗΘΕΙΑ λίγο επιγόντως.
Ένα script που να σκανάρει υποφακέλους και όλα τα αρχεία μέσα σε αυτούς και εφαρμόζει σε κάθε αρχείο την εντολή
Κώδικας: Επιλογή όλων
head ΧΧΧ | grep CHO

Και να εμφανίζει το όνομα και το path του αρχείου που βρήκε αυτή τη λέξη.
Επειδή δεν έχω μεγάλη εμπειρία σε script και ξέρω πώς να φτιάξω τους βρόχους.


ΕΥΧΑΡΙΣΤΩ
Άβαταρ μέλους
Nisok
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 2637
Εγγραφή: 25 Ιαν 2009, 15:00
Τοποθεσία: /home
IRC: nisok
Εκτύπωση

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

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