فرمان aspell (غلطیاب املای تعاملی)
آخرین ابزاری که در رابطه با پردازش متن (Text Processing) بررسی خواهیم کرد؛ فرمان aspell که یک غلطیاب املای تعاملی است، میباشد.
برنامه aspell جانشین برنامهای با نام ispell است و برای بیشتر بخشها میتواند جایگزینی مناسب باشد. درحالیکه ابزار aspell بیشتر توسط سایر برنامهها که دارای قابلیت غلطیابی املایی است، استفاده میشود ولی این ابزار میتواند بهتنهایی و از طریق خط فرمان نیز بهصورت موثر، مورد استفاده قرار گیرد. این ابزار توانایی بررسی کردن هوشمندانه انواع مختلف فایلها شامل اسناد HTML، برنامههای C/C++ و سایر انواع اتخصاصی متن را دارد.
برای غلطیابی یک فایل متنی که حاوی متنی ساده است، فرمان aspell را میتوان با ساختار زیر استفاده کرد:
1 |
aspell check textfile |
در این ساختار textfile نام فایل متنی است که میخواهیم آن را بررسی کنیم. بهعنوان یک مثال کاربردی ابتدا یک فایل ساده متنی با نام foo.txt که حاوی برخی خطاهای املایی غلط هست ایجاد میکنیم:
1 2 |
[me@linuxbox ~]$ cat > foo.txt The quick brown fox jimped over the laxy dog. |
اکنون فایل را با فرمان aspell بررسی میکنیم، کد زیر را وارد کنید:
1 |
[me@linuxbox ~]$ aspell check foo.txt |
نتیجه را مشاهده کنید:
1 2 3 4 5 6 7 8 9 10 11 |
The quick brown fox jimped over the laxy dog. 1) jumped 6) wimped 2) gimped 7) camped 3) comped 8) humped 4) limped 9) impede 5) pimped 0) umped i) Ignore I) Ignore all r) Replace R) Replace all a) Add l) Add Lower b) Abort x) Exit ? |
همانطور که مشاهده میکنید، اولین غلط املایی ما Highlight شده است. برنامه به ما گزینههایی را پیشنهاد میکند و در مقابل از ما برای اصلاح جواب میخواهد. تلفظهای صحیح با شمارههایی مشخص شدهاند. در زیر آن اکشنهای مورد نظر با کلمات میانبر مشخص شده و در آخر هم از ما میپرسد که چهکاری انجام دهد؟ شماره مربوط بهjumped عدد 1 میباشد، آن را وارد میکنیم و به غلط املایی بعدی هدایت میشویم. آنقدر این کار را ادامه میدهیم تا همه غلطها برطرف شوند. زمانی که غلطها برطرف شدند، برنامه از حالت تعاملی خارج میشود. برنامه بهصورت پیشفرض برای ما فایل بکاپی را که حاوی متن اصلی با پسوند bak است را با نام فایل ایجاد میکند. برای نشان دادن قدرت کار خود با ابزار sed که اخیرا آن را شرح دادیم، برخی از غلطهای املایی خود را به حالت قبلی بازمیگردانیم:
1 |
[me@linuxbox ~]$ sed -i 's/lazy/laxy/; s/jumped/jimped/' foo.txt |
میبیینم که فرمان aspell میتواند با انواع مختلف فایل متنی کار کند. با استفاده از یک ویرایشگر متنی مثلا vim یک محتوای HTML ساده که دارای غلط املایی است را به فایل خود اضافه میکنیم:
یک خطا رخ داده است. لطفا دوباره تلاش کنید. |
مجددا aspell را بر روی فایل اجرا میکنیم:
1 |
[me@linuxbox ~]$ aspell check foo.txt |
و نتیجه عجیبی را دریافت میکنیم!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<html> <head> <title>Mispelled HTML file</title> </head> <body> <p>The quick brown fox jimped over the laxy dog.</p> </body> </html> 1) HTML 4) Hamel 2) ht ml 5) Hamil 3) ht-ml 6) hotel i) Ignore I) Ignore all r) Replace R) Replace all a) Add l) Add Lower b) Abort x) Exit ? |
فرمان aspell فایل ما را یک فایل متنی ساده فرض میکند و تگهای HTML را بهعنوان غلط املایی تشخیص میدهد. دلیل آن، این است که به aspell نفهمانیدم که فرمت فایل ما چیست. این بار همین کار را با اضافه کردن گزینه –H مجدد انجام میدهیم:
1 |
[me@linuxbox ~]$ aspell -H check foo.txt |
نتیجه چنین خواهد شد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<html> <head> <title>Mispelled HTML file</title> </head> <body> <p>The quick brown fox jimped over the laxy dog.</p> </body> </html> 1) Mi spelled 6) Misapplied 2) Mi-spelled 7) Miscalled 3) Misspelled 8) Respelled 4) Dispelled 9) Misspell 5) Spelled 0) Misled i) Ignore I) Ignore all r) Replace R) Replace all a) Add l) Add Lower b) Abort x) Exit ? |
مشاهده میگردد که کد HTML نادیده گرفته شده و فقط Markup ساده متنی برای غلطیابی بررسی میشود.
منبع: لینوکسسیزن نوشته فرشید نوتاش حقیقتدرباره فرشید نوتاش حقیقت
همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرمافزارهای آزاد/ متنباز و سیستمعامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.
نوشتههای بیشتر از فرشید نوتاش حقیقتاین سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش میشوند.
دیدگاهتان را بنویسید