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

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

Koultouras

Recode σε πολλά txt αρχεία?

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

Έχω καμιά 200 αριά .txt αρχεία από την εποχή των παραθύρων και θέλω να τα κάνω recode σε utf8.

Πώς μπορώ να τα κάνω μαζικά και όχι ένα ένα;

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Βασικά θέλω να κάνω recode σε έναν φάκελο, που έχει μέσα άλλους φακέλους και μέσα σε αυτούς τους φακέλους βρίσκονται τα txt.

Είναι πολλά κατηγοριοποιημένα αρχεία που δεν μπορώ να τα πετάξω όλα σε ένα φάκελο.

Δυστυχώς θέλω πολλά ε;

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Μπορείς να δώσεις στον αρχικό φάκελο την εντολή find . και στην συνέχεια να περάσεις την έξοδο σε όποια άλλη εντολή θέλεις με pipe line. Η find . θα σου επιστρέψει όλα τα αρχεία που περιλαμβάνονται στους υποφακέλους. Π.χ.

 

folder1/folder2/txt1.txt

folder1/folder1/txt2.txt

folder1/folder1/txt3.txt

folder1/folder2/txt1.txt

folder1/folder2/txt2.txt

folder1/folder3/txt1.txt

 

Από την στιγμή που θα έχεις το path από κάθε αρχείο μπορείς να το περάσεις από την iconv και να του αλλάξεις τα φώτα.

 

iconv

 

find

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Να ρωτήσω κάτι. Δυστυχώς δε βρίσκομαι μπροστά σε Ubuntu τώρα για να μπορέσω να δοκιμάσω, αλλά αν πχ δώσεις πολλά αρχεία στην εντολή recode δε θα γίνει αυτό?

 

πχ recode iso-8859-7..utf-8 file1 file2 file3 ....

ή recode iso-8859-7..utf-8 *.*

 

Απλά ξέρω για τη recode ότι πρέπει να του δώσεις και το αρχικό encoding. πχ, αν το αρχείο σου το αρχικό είναι iso-8859-7 και δώσεις στην εντολή πχ recode iso-8859-1..utf-8 file τότε δε θα δώσει αποτέλεσμα. Αλλά νομίζω και στην iconv ισχύει αυτό. Δηλαδή νομίζω δε γίνεται να έχεις σε έναν φάκελο αρχεία σε διαφορετικές κωδικοποιήσεις και να τα μετατρέψεις μαζικά σε utf-8.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
Δυστυχώς θέλω πολλά ε;

Τίποτα δεν είναι δύσκολο για το Unix! ;) Μπορείς να το κάνεις όπως λέει ο firewalker, π.χ. για να μετατρέψεις κάθε αρχείο .txt από iso-8859-7 σε utf-8 αποθηκεύοντάς το στον ίδιο κατάλογο με το αρχικό και με όνομα "conv-"+αρχικό-όνομα.txt, θα μπορούσες να δώσεις:

 

>[color="DarkRed"]#!/bin/sh[/color][color="Green"]
for file in `find /path/to/files -name "*.txt"`; do
pathname="${file%\/*}"
filename="${file##*\/}"
iconv -f ISO-8859-7 -t UTF-8 $file > $pathname"/conv-"$filename 
done[/color]

 

PS. χρήσιμο site για regular expressions: http://www.regexp.info

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Παιδιά σας ευχαριστώ πολύ.

Τελικά

Τίποτα δεν είναι δύσκολο για το Unix!
:) :)

Έκανα την δουλειά μου πολύ βαμβάκι και πολύ εύκολα.

Ευχαριστώ !!!

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Επαναφέρω το θέμα γιατί ένα άλλο post σήμερα μου θύμησε να τσεκάρω αυτό που πρότεινα παραπάνω μερικές μέρες πριν.

 

Λοιπόν, όντως γίνεται μαζικό recoding αρχείων με την εντολή recode.

 

>πχ
recode iso-8859-7..utf-8 file1.txt file2.txt file3.txt
ή
recode  iso-8859-7..utf-8 * μέσα στον φάκελο με τα αρχεία txt

 

Προϋπόθεση να έχουν όλα αρχικά το ίδιο encoding, και να ξέρουμε πιο είναι αυτό.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
×
×
  • Δημιουργία νέου...