انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: سید اشرار در 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
------------------------------------
-
عبارتهایی که به شکل "عدد:عدد" باشه حذف میشن
خطهای خالی با "--------" جایگزین میشن
خطهایی هم که با "عدد" شروع بشه و تموم بشه تبذیل به "[عدد]" میشه
sed -e 's/^\([[:digit:]]\{1,\}\)$/[\1]/' -e 's/^$/-----------/' -e '/[[:digit:]]:[[:digit:]]/d' FILE
کا چیزی که از روی فایل مثالتون تونستم متوجه بشم همینا بود؛ یه تست بزنید
-
مشتی جواب می ده ولی به این شکل اون خط و براکت رو چاپ نمی کنه
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?
-
یه نمونه فایل ورودیتون رو بدید بی زحمت؛
-
یه نمونه فایل ورودیتون رو بدید بی زحمت؛
http://www.datafilehost.com/d/e6c263d3
-
sed -e 's/^\([[:digit:]]\{1,\}\)\s*$/[\1]/' -e 's/^\s*$/-----------/' -e '/[[:digit:]]:[[:digit:]]/d' aa.str
مشکل از وحود space توی هر خط بود..
من اینو تست کردم مشکلی ندیدم؛ شما هم یه تست بزتید
-
بخاطر وقتی که گذاشتی سپاس
(حل شد)