انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: سید اشرار در 28 تیر 1393، 07:07 ب‌ظ

عنوان: تمیز کاری یه فایل str (حل شد)
ارسال شده توسط: سید اشرار در 28 تیر 1393، 07:07 ب‌ظ
دوستان من نیاز به اسکریپتی دارم که یه فایل str رو از ورودی بگیره به این شکل

2
00:00:51,841 --> 00:00:53,991
hi

3
00:01:01,765 --> 00:01:04,166
where is
me

و به این تبدیل کنه


[2]
hi
------------------------------------
[3]
where is
me
------------------------------------


عنوان: پاسخ : تمیز کاری یه فایل str
ارسال شده توسط: B در 28 تیر 1393، 07:57 ب‌ظ
عبارت‌هایی که به شکل "عدد:عدد" باشه حذف میشن
خطهای خالی با "--------" جایگزین میشن
خطهایی هم که با "عدد" شروع بشه و تموم بشه تبذیل به "[عدد]" میشه


sed -e 's/^\([[:digit:]]\{1,\}\)$/[\1]/' -e 's/^$/-----------/'  -e '/[[:digit:]]:[[:digit:]]/d' FILE



کا چیزی که از روی فایل مثالتون تونستم متوجه بشم همینا بود؛ یه تست بزنید
عنوان: پاسخ : تمیز کاری یه فایل str
ارسال شده توسط: سید اشرار در 28 تیر 1393، 08:15 ب‌ظ

مشتی جواب می ده ولی به این شکل اون خط و براکت رو چاپ نمی کنه


663
But some wounds are too deep
or too close to the bone,

664
and no matter how hard you work at it,
you just can't stop the bleeding.

665
Did you write your daughter?




عنوان: پاسخ : تمیز کاری یه فایل str
ارسال شده توسط: B در 28 تیر 1393، 08:17 ب‌ظ
یه نمونه فایل ورودیتون رو بدید بی زحمت؛
عنوان: پاسخ : تمیز کاری یه فایل str
ارسال شده توسط: سید اشرار در 28 تیر 1393، 08:22 ب‌ظ
یه نمونه فایل ورودیتون رو بدید بی زحمت؛

http://www.datafilehost.com/d/e6c263d3
عنوان: پاسخ : تمیز کاری یه فایل str
ارسال شده توسط: B در 28 تیر 1393، 08:30 ب‌ظ
sed -e 's/^\([[:digit:]]\{1,\}\)\s*$/[\1]/' -e 's/^\s*$/-----------/'  -e '/[[:digit:]]:[[:digit:]]/d' aa.str


مشکل از وحود space توی هر خط بود..
من اینو تست کردم مشکلی ندیدم؛ شما هم یه تست بزتید
عنوان: پاسخ : تمیز کاری یه فایل str
ارسال شده توسط: سید اشرار در 28 تیر 1393، 08:34 ب‌ظ
بخاطر وقتی که گذاشتی سپاس
(حل شد)