คำถามเรื่องการใช้คำสั่ง iconv

 

มีคนถามเรื่องการเปลี่ยนชื่อแฟ้ม mp3 (ไม่ใช่ TagID3 นะครับ) ผมจำได้ว่ามีคำสั่ง iconv ลองดู man page แล้วก็งงๆ เหมือนมันจะเหมาะกับเชลล์สคริปต์

ผมลองทำสคริปต์ดู มันไม่สำเร็จครับ อาจารย์วิทยาช่วยปรับแต่งให้หน่อยซิครับ ... รบกวนทีน้อ ...

[code]#!/bin/bash

SKEL="*mp3 *MP3 *Mp3"

for i in $SKEL; do
    iconv -f tis-620 -t utf-8 $i > $i.utf
    mv  $i $i.tis
    mv  $i.utf $i
done[/code]

Forums: 

 

ขออภัยที่ตอบช้าครับ ติดภารกิจกับพระอาจารย์หลายวัน

คำสั่ง iconv เป็นการเปลี่ยน encoding ในเนื้อไฟล์ครับ ไม่ใช่ชื่อไฟล์
หากเราต้องการเปลี่ยนชื่อไฟล์ ต้อง ls ไปเก็บเป็นเนื้อไฟล์ไว้ก่อน ทำการแปลงเนื้อไฟล์นั้น แล้วจึง cat มาเป็นชื่อไฟล์ใหม่

ตัวอย่างคำสั่งที่ใช้เปลี่ยนชื่อไฟล์ mp3 ในไดเรกทอรี่ปัจจุบัน
[code]
#!/bin/bash

for i in *[Mm][Pp]3; do
    echo "$i" > /tmp/x.txt
    iconv -f utf-8 -t tis620 /tmp/x.txt > /tmp/y.txt
    mv "$i" "`cat /tmp/y.txt`"
done
rm /tmp/x.txt
rm /tmp/y.txt
[/code]

ฝืดหน่อยนะครับ มันไม่ได้ใช้นาน

 

ขอบคุณมากๆครับ อาจารย์ ...

 

[quote="ชายเจตน์"]
มีคนถามเรื่องการเปลี่ยนชื่อแฟ้ม mp3 (ไม่ใช่ TagID3 นะครับ) ผมจำได้ว่ามีคำสั่ง iconv ลองดู man page แล้วก็งงๆ เหมือนมันจะเหมาะกับเชลล์สคริปต์[/quote]

เปลี่ยนชื่อแฟ้มต้องคำสั่ง convmv ฮะพี่ชายเจตน์

[quote][size=100][b]convmv -f -t --notest --replace file_to_convert_name.ext[/b][/size][/quote]
[color=navy]--notest คือไม่ต้องทดสอบ ให้เปลี่ยนชื่อโลด
--replace คือ ให้ใช้ไฟล์ตัวเดิมนั่นแหละเป็นผลลัพธ์
สำหรับภาษาไทย ให้ใช้ iso8859-11 แทน tis-620 นะครับ[/color]

[code]#!/bin/bash

SKEL="*mp3 *MP3 *Mp3"

for i in $SKEL; do
    convmv -f iso8859-11 -t utf-8 --notest --replace $i
done[/code]

 

ตัวจริงมาแล้ว ;D

บนเดเบียน ผมลองใช้ tis-620 ได้นะครับ

 

[quote="wd"]
ตัวจริงมาแล้ว ;D

บนเดเบียน ผมลองใช้ tis-620 ได้นะครับ
[/quote]

แหม อาจารย์วิทยาก็ แถวนี้ตัวจริงทั้งนั้น  ;D
ผมใช้บน openSUSE มานานจนไม่เคยได้ทดสอบอีกเลยว่าใช้ tis-620 ได้หรือเปล่า
แต่ใช้ตอนแรก ๆ มันใช้ไม่ได้ ต้องเป็น iso8859-11 เท่านั้น ขี้เกียจไล่โค้ด เลยจำฝังหัวเลยว่าต้อง iso8859-11 อะครับ  :D

 

ตัวจริงกันหมดล่ะฮะ ยกเว้นผมติดสำรองมาตลอด ...  ;D

ขอบคุณพี่โด่งด้วยครับ สำหรับความรู้ใหม่กิ๊ก ...

 

Syndicate

Subscribe to Syndicate

Who's online

There are currently 0 users online.