لطفا وارد شوید یا ثبت‌نام کنید تا به انجمن‌ها دسترسی کامل داشته باشید.



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
تغیر نام تعداد زیادی فایل
2009-05-04, 07:43 AM,
ارسال : #1
تغیر نام تعداد زیادی فایل
با سلام
من سایت <!-- w --><a class="postlink" href="http://www.lyricsondemand.com">www.lyricsondemand.com</a><!-- w --> را با برنامه httrack دانلود کردم بعد از دانلود 12396 فایل html ان به جای اینکه پسوند html. داشته باشه همینطوری که توی screenshot میتوانید ببینید دارای پسوند html0000644. هستند
[ltr]
<!-- m --><a class="postlink" href="http://tinypic.info/viewer.php?file=eeurf0fmbzt3rn9ojye6.jpg">http://tinypic.info/viewer.php?file=eeu ... 9ojye6.jpg</a><!-- m -->
[/ltr]
این فایلهای با پسوند html0000644 همه شان سالمند و شعرهای انها همه کامل ولی نمیدانم که چرا httrack اشتباه کرده و انها را تغیر نام به html نداده حال سوال من اینه که من چطور میتونم این همه فایل را که توی پوشه های مختلفی هستند را تغیر نام بدهم و پسوندشان را html کنم؟ قبول دارید که دستی دیوانگی است. من نتیجه find گنوم را توی یک فایل txt ذخیره کرده ام چیزی که به ذهنم رسیده ولی نمیتوانم ان را اجرا کنم این است که مثلا اگر یکی از فایلها توی ادرس
[ltr]
lyrics/www.lyricsondemand.com/b/thebeachboyslyrics/ijustwasntmadeforthesetimeslyrics.html0000644
[/ltr]
هست همین خط را بدون 0000644 توی همان line کپی کنم و یک mv اول ان بگذارم یعنی اخر سر ۱۲۳۹۶ خط اینطوری داشته باشم که بتوانم توی bash ان را اجرا کنم و تمام فایلها را تغیر نام بدهم
[ltr]
mv lyrics/www.lyricsondemand.com/b/thebeachboyslyrics/ijustwasntmadeforthesetimeslyrics.html0000644 lyrics/www.lyricsondemand.com/b/thebeachboyslyrics/ijustwasntmadeforthesetimeslyrics.html
[/ltr]

راه حل شما چیه؟
نقل قول این ارسال در یک پاسخ
2009-05-04, 07:47 AM,
ارسال : #2
پاسخ: تغیر نام تعداد زیادی فایل
راستی این سایت بیشتر از ۴ گیگ html خالی داره پس اگر اینترنت سرعت پایین دارید به سرتون نزنه دانلودش کنید
نقل قول این ارسال در یک پاسخ
2009-05-04, 08:05 AM,
ارسال : #3
پاسخ: تغیر نام تعداد زیادی فایل
یک شل اسکریپت بنویس با چندتا حلقه تودرتو درست میشه .
فقط به پا که کار حساسه .
اشتباه کنی هرچی فایل داری رو ور میداره ری نیم میکنه Wink
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-05-04, 09:39 AM,
ارسال : #4
پاسخ: تغیر نام تعداد زیادی فایل
انجامش دادم اییییییییییییییییییییییووووووووووووووللللللللللللللللللل بنازم لینوکسو.
راه حل را نمیگم تا ویندوزی ها یه کمی به فکر راه حل بیفتن و متوجه بشن که خودشونو گرفتار چه چیز ضعیفی کرده اند.
به هر حال تعداد کل شعرها 394902 تاست و ۱۲۳۹۶ به نسبت کلش ۱ درصد هم نمیشه تازه کپیشو هم داشتم به هر حال بدون ترس انجامش دادم و نتیجه هم عالی بود.
نقل قول این ارسال در یک پاسخ
2009-05-04, 10:37 AM,
ارسال : #5
Re: پاسخ: تغیر نام تعداد زیادی فایل
Anonymous نویسنده :انجامش دادم اییییییییییییییییییییییووووووووووووووللللللللللللللللللل بنازم لینوکسو.
راه حل را نمیگم تا ویندوزی ها یه کمی به فکر راه حل بیفتن و متوجه بشن که خودشونو گرفتار چه چیز ضعیفی کرده اند.
به هر حال تعداد کل شعرها 394902 تاست و ۱۲۳۹۶ به نسبت کلش ۱ درصد هم نمیشه تازه کپیشو هم داشتم به هر حال بدون ترس انجامش دادم و نتیجه هم عالی بود.

دوست عزیز اول اینکه تو ویندوز ابزارهایی همچون totalcmd هست که اینکار را انجام میدهد منتهی این یک برنامه جانبی هست با اینکه خودم یک لینوکس کار هستم بایستی احترام ویندوز کارها را داشته باشیم.
در خصوص مشکلتان میتوانستید با یک shell script کوتاه همچون مثال ذیل کارتان را انجام دهید:
#!/bin/bash
ls *.htm* |
while read file
do
name=`echo $file|cut -d. -f1`
mv $name.* $name.htm
done
نقل قول این ارسال در یک پاسخ
2009-05-04, 01:49 PM,
ارسال : #6
پاسخ: Re: پاسخ: تغیر نام تعداد زیادی فایل
این نکته اسکریپتی خیلی جالب وهیجان انگیز بود .
یه سوال پیش اومد برام اسم یه سری فایل رو چطور میشه تغییر داد بدون تغییر پسوندش؟
به دوستی که سایت دانلود میکنن هم Getleft توصیه میکنم واقعا نرم افزار خوبیه .
یه بار امتحان کنید بد نیست.
نقل قول این ارسال در یک پاسخ
2009-05-04, 02:19 PM,
ارسال : #7
پاسخ: Re: پاسخ: تغیر نام تعداد زیادی فایل
اسکریپتشون که اشکال داره فایلها که توی یک پوشه نیستند که از ls استفاده بشه باید از find استفاده بشه که من نتونستم سوییچ برای پرینت مسیر کامل نامهایی که بین دو کلمه انها فاصله است را پیدا کنم
مثلا فایل new file.html0000644 که توی ترمینال اسمش اینطوری نمایش داده میشه
[ltr]
new\ file.html000064
[/ltr]
تازه اگر توی یه پوشه بود باز هم اسکریپت شما اشکال داره مثلا توی یه پوشه mp3 اگه ls پگیرم اینطوریه
[ltr]
$ ls
Ain't Nobody but Me.mp3 Breakfast in America.mp3 Crime of the Century.mp3
Bloody Well Right.mp3 Cannonball.mp3.mp3 Dreamer.mp3.mp3
[/ltr]
که این خروجی به درد mv نمیخوره چون مثلا برای با فایل Ain't Nobody but Me.mp3 توی ترمینال کار بکنیم باید اسمش اینطوری نمایش داده بشه
[ltr]
Ain\'t\ Nobody\ but\ Me.mp3
[ltr]
متاسفانه اسکریپت نویسی بلد نیستم ولی با خوندن اسکریپت شما هر کسی متوجه اشکالاتش میشه.
نقل قول این ارسال در یک پاسخ
2009-05-04, 05:29 PM,
ارسال : #8
Re: پاسخ: تغیر نام تعداد زیادی فایل
Anonymous نویسنده :راه حل را نمیگم تا ویندوزی ها یه کمی به فکر راه حل بیفتن و متوجه بشن که خودشونو گرفتار چه چیز ضعیفی کرده اند.
دوست عزیز . اون کاربرهای ویندوز همه انسان هستند و مثل ما . همه هم دوست داشتنی Big Grin
دلیل نمیشه که بخاطر مایکروسافت و مشکلاتی که با مایکروسافت و انحصار طلبیش هست به اونا بی احترامی کنیم و مثل مایکروسافت انحصار طلب باشیم .
در هر صورت موفق باشید
:wink:
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-05-04, 06:18 PM,
ارسال : #9
پاسخ: Re: پاسخ: تغیر نام تعداد زیادی فایل
من که به اونها توهین نکردم من گفتم ویندوز ضعیفه همین حالا این که نمیشه توهین به ویندوز کارها (ژیان ماشینه خوبی نیست و این دلیل نمیشه هر کسی سوار ژیانه ادم حقیری باشه)ممکنه برای این کار توی ویندوز برنامه ای هم باشه ولی خوبی لینوکس اینه که با ترکیب چند برنامه میتونی کاری را بکنی که یه ویندوز کار باید براش ۳۰ -۴۰ دلار پول خرج کنه (البته اگه ما توی امریکا بودیم)
نقل قول این ارسال در یک پاسخ
2009-05-04, 06:43 PM,
ارسال : #10
Re: پاسخ: Re: پاسخ: تغیر نام تعداد زیادی فایل
Anonymous نویسنده :من که به اونها توهین نکردم من گفتم ویندوز ضعیفه همین حالا این که نمیشه توهین به ویندوز کارها (ژیان ماشینه خوبی نیست و این دلیل نمیشه هر کسی سوار ژیانه ادم حقیری باشه)ممکنه برای این کار توی ویندوز برنامه ای هم باشه ولی خوبی لینوکس اینه که با ترکیب چند برنامه میتونی کاری را بکنی که یه ویندوز کار باید براش ۳۰ -۴۰ دلار پول خرج کنه (البته اگه ما توی امریکا بودیم)
نمیدونم
شاید من منظورتون رو اشتباه متوجه شدم
در هر صورت عذر میخوام
:wink:

اینم دستورش برای دوستانی که میخوان بدونن چجوری میشه .
کد :
for FileAdrs in `find | grep .html0000644 `; do mv "$FileAdrs" "`dirname $FileAdrs`/`basename $FileAdrs .html0000644`.htm";done

به صورت شل اسکریپتشم میشه اینجوری :
کد :
# /bin/sh
for FileAdrs in `find | grep $1`
do
    mv "$FileAdrs" "`dirname $FileAdrs`/`basename $FileAdrs $1`$2"
done
که نحوه کارکردن باهاش میشه اینجوری :
کد :
./script .htm000064 .htm

:wink:
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ


رفتن به انجمن :


کاربران در حال مشاهده موضوع : 1 مهمان