مشاهده نسخه کامل
: باش-تغییر خطهای فایل متنی
بهزادlinux
15-05-2010, 20:03
سلام
یه اسکریپته که یکجاشو مشکل دارم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بجای
"print line1 of text file"
و
"print line2 of text file"
چی بذارم؟
و اینکه بجای چاپ خط به خط فایل کلمه ای را در فایل متنی پیدا کنه و خط مربوطه رو چاپ کنه
ممنون :20:
danial_848
16-05-2010, 15:13
سلام
برای چاپ خط از روی شماره خط:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
فقط شماره خط هم چاپ میشه
چاپ خط از روی کلمه موردنظر در خط:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بهزادlinux
16-05-2010, 15:56
ممنون دستور اول درست کار نکرد ولی دومی کار کرد :8:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بهزادlinux
16-05-2010, 16:44
ببینید کاری که میخوام بکنم اینه که به url ها یک لینک بدم که موقعی که دانلد تمام شد با یک چنین دستوری
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ادرس فایل غیر فعال بشه
فقط در قسمت لینک دهی به هر url مشکل دارم (فعلا) :19:
danial_848
19-05-2010, 19:29
درباره اولی که طبیعیه، چون هر خطی که درش 1 باشه رو چاپ میکنه. و این که باید دقیقتر توضیح بدید و در صورت امکان کد رو بگذارید تا بهتر بشه کمک کرد. با زبانهای پیشرفتهتر شاید خیلی راحتتر از اینها کارتون راه بیفته.
بهزادlinux
20-05-2010, 10:11
درواقع من دانلد هامو با aria2c انجام میدم و لیست url هارو در فایل متنی میریزم تا دانلد کنه ولی مشکلاتی داره مثل اینکه اگر فایل دانلد شده رو به جای دیگه منتقل کنم و لینکش رو از لیست ادرسها حذف نکنم دوباره فایل رو دانلد میکنه!
درواقع میخوام لینک فایلهایی که دانلدشان تکمیل شده رو یا غیر فعال کنم یا به فایل متنی دیگری منتقل کنم
من از برنامه نویسی هیچی نمیدونم و فقط کمی با باش میتونم کار کنم
این اسکریپته که در اپن سوزه خودکار به اینترنت وصل میشه و دانلد میکنه
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
danial_848
20-05-2010, 20:06
خوب این جا اون نرمافزار چندتا متغیر برای شل تعریف کرده. این مشکل برمیگرده به اطلاعات متغیر CACHEFILE و باید بررسی شه. ولی درباره همون سؤال قبلی درباره کامنت گرفتن url این کار عملیه اون دستور اول رو این طور استفاده کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بهزادlinux
20-05-2010, 20:48
خوب این جا اون نرمافزار چندتا متغیر برای شل تعریف کردهاگه منظور aria2c هست که توی تنضیماتش خیلی گشتم ولی به نتیجه نرسیدم فقط یک گزینه عالی داره که وقتی دانلد یک فایل تموم میشه نرم افزار میتونه یک دستور یا یک اسکریپت دیگه رو اجرا کنه ولی این وقتی بدرد میخوره که هر url یک میونبر داشته باشه که مثلا بهش بگی url رو حذف کن یا به فایل دیگری انتقال بده
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
danial_848
21-05-2010, 09:58
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
U1 باید این طور باید تعریف بشه تا دستور رو اجرا کنه
بهزادlinux
21-05-2010, 14:33
ممنون درست شد ولی نمیدونم چه فرقی کرد!!
حالا چطور میتونم این دستور رو اظافه کنم تا بعد از کامل شدن دانلد # پشت url بذاره؟
یه چیزی شبیه این
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
danial_848
22-05-2010, 11:09
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیددر خط اول بهجای n شماره خط رو بگذار. این دستورات خط n رو بهکل حذف میکنه. اگر میخوای اولش # بگذاره فکر نمیکنم با vi ممکن باشه .شاید با ادیتورهای دیگه بشه. فقط میشه بهجای 1dd ، بگذاری -i تا بعد از پایان دانلود فایل رو باز کنه و باید خودت بهطور دستی # رو بگذاری و فایل رو ذخیره کنی.
اینها رو میتونی در یک فایل بریزی و به شکل یک دستور جدید استفاده کنی:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداینها رو در یک فایل بریز و فایل رو در /home/$USER/bin قرار بده. در خط فرمان اسم فایل رو بنویس و آرگومان فرمان هم شماره خط خواهد بود. یعنی به شکل: FILENAME n
بهزادlinux
22-05-2010, 17:27
ممنون این خیلی عالی شد ! فقط قسمت vi که قراره خط رو پاک کنه به ادرس فایل گیر میده و فایلو پاک نمیکنه!
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
عجیبه این دستور به تنهایی خط رو پاک میکنه ولی در اسکریپت خیر!
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
danial_848
22-05-2010, 18:40
خواهش میکنم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مکان bash در متغیر BASH هست با echo $BASH ببین کجاست و جای /bin/bash بگذار
درمورد ارور دقت کن مسیر url/1.txt رو باید بدی (اگر در دایرکتوری جاری نیست). برای فایلها هم نیاز نیست پسوند بگذاری.
بهزادlinux
22-05-2010, 22:55
مکان bash در متغیر BASH هست با echo $BASH ببین کجاست و جای /bin/bash بگذاراین سیستم محل کارم بود که ارور میداد و ادرس هم درست بود!!
درمورد ارور دقت کن مسیر url/1.txt رو باید بدی (اگر در دایرکتوری جاری نیست). برای فایلها هم نیاز نیست پسوند بگذاری. مسیر درسته اینهم نتیجه از سیستم خونه که به مسیر فایل url گیر میده
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداین هم اسکریپت
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدحالا یه اومدم از قسمت vi یه اسکریپت دیگه ساختم به اسم ۲
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداین هم اسکریپت اصلی
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدو خروجی که فکر کنم مشکلش اینه که بجای اینکه اتوماتیک خط رو پاک کنه vi رو باز میکنه و
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدو هرکپوم از اپشنها رو که میزنم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
danial_848
23-05-2010, 08:13
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ارورهای آخری هم مربوط به پروسههاست مشکلی نیست. این مواقع e رو بزنید.
بهزادlinux
23-05-2010, 19:00
ارورهای آخری هم مربوط به پروسههاست مشکلی نیست. این مواقع e رو بزنید.
اگه توجه کنید e رو زدم ولی ایراد گرفته
If 'e' is not a typo you can use command-not-found to lookup the package that contains it, like this:
cnf eولی من میخواستم اتوماتیک باشه که وقتی چشمم بهش نیست کارشو درست انجام بده :5:
danial_848
23-05-2010, 19:36
الآن درست کار میکنه دیگه؟
پروسههای مربوطش رو kill کنی حل میشه.
بهزادlinux
24-05-2010, 00:37
ممنون از کمکهایی که کردید بالاخره اینطوری به هدفم رسیدم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداین هم با گوگل پیدا کردم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدحالا دوتا سوال داشتم
۱ - ${U1:7} چیه؟
۲- چطور میتونم دسته ای لینک بذارم برای دانلد؟ که مثلا فایل r1 , r2 رو با دو ترمینال بگیره و ۵ دانلد همزمان با هرکدام داشته باشه
(aria2c بصورت پیشفرض ۵ خط از فایل متنی رو میگیره و شروع به دانلد میکنه)
aria2c -i r2
ممنون
danial_848
24-05-2010, 13:58
ممنون از کمکهایی که کردید بالاخره اینطوری به هدفم رسیدم
۱ - ${U1:7} چیه؟
۲- چطور میتونم دسته ای لینک بذارم برای دانلد؟ که مثلا فایل r1 , r2 رو با دو ترمینال بگیره و ۵ دانلد همزمان با هرکدام داشته باشه
(aria2c بصورت پیشفرض ۵ خط از فایل متنی رو میگیره و شروع به دانلد میکنه)
aria2c -i r2
ممنون
خواهش میکنم
۱. این ۷ کاراکتر ابتدای متغیر رو حذف میکنه. چون خروجی cat -n به اول خط ۷ تا کاراکتر اضافه میکنه از جمله شماره خط.
۲. خوب aria2c رو دوبار اجرا کنید به هر کدام یک فایل بدید.
بهزادlinux
24-05-2010, 15:54
۲. خوب aria2c رو دوبار اجرا کنید به هر کدام یک فایل بدید.
اینو میدونم ولی دستوری که ساختیم فقط یک خط رو میتونه وارد کنه دانلد کنه و حذف کنه میشه این دستور رو 10 بار اجرا کنم تا 10 فایلو با هم دانلد کنه اینطوری
script 1
script 2
script 3
...
ولی این باز مشکل داره چون این 10 خط که تموم شد نمیره خطای بعدی رو بگیره!
و اگر مختصر میشد بهتر بود یک چیزی شبیه این
script 1:10
danial_848
25-05-2010, 11:11
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بهزادlinux
25-05-2010, 20:57
این اسکریپتو نتونستم راش بندازم! فقط میره خط بعد بدون اینکه کاری بکنه
danial_848
26-05-2010, 10:27
شاید داره کارش رو انجام میده!
این سه خط رو به این شکل در بیار
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بهزادlinux
26-05-2010, 21:17
این بصورتی که دادید مستقیم میره خط بعد و اصلا وارد while نمیشه / هیچ عکس العملی هم نشون نمیده که مثلا فایلی رو بذاره برای دانلد
خروجی این هم ۱ بود
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای شما کار میکنه؟
danial_848
27-05-2010, 10:26
این بصورتی که دادید مستقیم میره خط بعد و اصلا وارد while نمیشه / هیچ عکس العملی هم نشون نمیده که مثلا فایلی رو بذاره برای دانلد
خروجی این هم ۱ بود
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدبرای شما کار میکنه؟
این طوری که نباید هم کار کنه
$1 و $2 آرگومان ها هستند
این طور باید اجرا کنید:
$ ./SCPRT 1 10
که این از یوآرال ۱ تا ۱۰ (منجمله خود ۱ و ۱۰) رو دانلود میکنه.
بهزادlinux
29-05-2010, 16:43
اسکریپت خوب کار کرد ولی یه مشکل اساسی که هست اینه که اولا میخوام ده فایل رو با هم بذاره دانلد دوما اگر دانلد یک فایل تموم شد یک فایل دیگه اتوماتیک جایگزین بشه
بعد مشکل اصلی میشه چسبوندن به اسکریپت اولیم که هرچقدر سعی کردم نشد :18:
danial_848
30-05-2010, 10:14
اسکریپت خوب کار کرد ولی یه مشکل اساسی که هست اینه که اولا میخوام ده فایل رو با هم بذاره دانلد دوما اگر دانلد یک فایل تموم شد یک فایل دیگه اتوماتیک جایگزین بشه
اگر فایلهای محتوی URL رو به صورت FILEn نامگذاری کنی:
فایل SCRPT:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای اجرا:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
از فایل FILE1 تا FILE20، هرکدام یوآرال ۱ تا ۱۰ دانلود میشه.
بعد مشکل اصلی میشه چسبوندن به اسکریپت اولیم که هرچقدر سعی کردم نشد :18:
چه لزومی داره؟ با همین دانلود میکنی دیگه
بهزادlinux
30-05-2010, 13:11
چه لزومی داره؟ با همین دانلود میکنی دیگه
اسکریپت خودم یه قسمت اتصال به اینترنت با یه while داره (که چسبوندنش به این سختی خودشو داره) قسمت دومش که دانلده رو باید روی اسکریپت اپدیت کنم :31:
تست میکنم خبرشو میدم
ممنون
بهزادlinux
30-05-2010, 13:29
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
danial_848
30-05-2010, 16:12
منظورم از n عدد بود: FILE1, FILE2, ...
بهزادlinux
30-05-2010, 23:12
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
danial_848
31-05-2010, 09:51
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بهزادlinux
31-05-2010, 12:17
ممنون
چند تا مشکل وجود داره یکی اینکه در اسکریپت قبلی که فایل ها رو با موفقیت دانلد کرد یک فایل با پسوند متالینک هم برای هر فایل ساخت اینبار هم همون اتفاق افتاد
دوم اینکه یک فایل رو دانلد میکنه بعد میره سراغ بعدی
سوم اینکه اینبار فقط یک فایل رو دانلد کرد و بقیه رو ارور بدون ربطی داد!
چهارم اینکه خط مربوط به لینک به r2 نرفت و از فایل متنی هم پاک نشد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدیک نکته برای ساده تر کردن اسکریپت: همین که بشه تعداد دانلدهای همزمان رو مشخص کرد کافیه و نیازی به چند فایل برای url ها نیست
اگر یکم در مورد مفهوم ((F0<Fn)) و ((n<m)) که همراه while اومده توضیح بدید ممنون میشم
danial_848
31-05-2010, 15:37
چند تا مشکل وجود داره یکی اینکه در اسکریپت قبلی که فایل ها رو با موفقیت دانلد کرد یک فایل با پسوند متالینک هم برای هر فایل ساخت اینبار هم همون اتفاق افتاد
اون قاعدتاً باید بعد از اتمام دانلود خودبهخود حذف بشه. اگر نمیشه نمیدونم!
دوم اینکه یک فایل رو دانلد میکنه بعد میره سراغ بعدی
مگر باید کار دیگری هم انجام بده؟!
سوم اینکه اینبار فقط یک فایل رو دانلد کرد و بقیه رو ارور بدون ربطی داد!
خوب ارور چی بود؟
چهارم اینکه خط مربوط به لینک به r2 نرفت و از فایل متنی هم پاک نشد
اسم r2 رو باید بهصورت FILEn درمیآوردی.
همین که بشه تعداد دانلدهای همزمان رو مشخص کرد کافیه
متوجه نشدم
اگر یکم در مورد مفهوم ((F0<Fn)) و ((n<m)) که همراه while اومده توضیح بدید ممنون میشم
مشخصه یعنی تا وقتی مقدار n از m کمتره حلقه برقراره (با این توضیح که در هر دور حلقه به مقدار n یکی اضافه میشه).
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.