คำถามเรื่องการใช้คำสั่ง iconv
Submitted by ชายเจตน์ on Sat, 2010-07-17 17:35
มีคนถามเรื่องการเปลี่ยนชื่อแฟ้ม 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:
Re: คำถามเรื่องการใช้คำสั่ง iconv
ขออภัยที่ตอบช้าครับ ติดภารกิจกับพระอาจารย์หลายวัน
คำสั่ง 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]
ฝืดหน่อยนะครับ มันไม่ได้ใช้นาน
Re: คำถามเรื่องการใช้คำสั่ง iconv
ขอบคุณมากๆครับ อาจารย์ ...
Re: คำถามเรื่องการใช้คำสั่ง iconv
[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]
Re: คำถามเรื่องการใช้คำสั่ง iconv
ตัวจริงมาแล้ว ;D
บนเดเบียน ผมลองใช้ tis-620 ได้นะครับ
Re: คำถามเรื่องการใช้คำสั่ง iconv
[quote="wd"]
ตัวจริงมาแล้ว ;D
บนเดเบียน ผมลองใช้ tis-620 ได้นะครับ
[/quote]
แหม อาจารย์วิทยาก็ แถวนี้ตัวจริงทั้งนั้น ;D
ผมใช้บน openSUSE มานานจนไม่เคยได้ทดสอบอีกเลยว่าใช้ tis-620 ได้หรือเปล่า
แต่ใช้ตอนแรก ๆ มันใช้ไม่ได้ ต้องเป็น iso8859-11 เท่านั้น ขี้เกียจไล่โค้ด เลยจำฝังหัวเลยว่าต้อง iso8859-11 อะครับ :D
Re: คำถามเรื่องการใช้คำสั่ง iconv
ตัวจริงกันหมดล่ะฮะ ยกเว้นผมติดสำรองมาตลอด ... ;D
ขอบคุณพี่โด่งด้วยครับ สำหรับความรู้ใหม่กิ๊ก ...