OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

مختون

مختون يستخدم البرنامج لاستخراج جزء من النص من سطر وإخراج القسم المستخرج إلى الإخراج القياسي. يمكنه قبول وسائط متعددة للملفات أو مدخلات من الإدخال القياسي.

يعد تحديد قسم السطر المراد استخراجه أمرًا محرجًا إلى حد ما ويتم تحديده باستخدام الخيارات التالية:


الجدول 20-3: قص خيارات التحديد


وصف الخيار

وصف الخيار

-c char_list استخرج جزء السطر المحدد بواسطة char_list. قد تتكون القائمة من واحد أو أكثر من النطاقات الرقمية مفصولة بفواصل.


صورة

-f قائمة_الميدان استخراج حقل واحد أو أكثر من السطر كما هو محدد بواسطة

قائمة_الميدان. قد تحتوي القائمة على حقل واحد أو أكثر أو نطاقات حقول مفصولة بفاصلات.


صورة

-d delim_char متى -f محدد ، استخدم delim_char كحرف تحديد المجال. بشكل افتراضي ، يجب فصل الحقول بواسطة حرف جدولة واحد.


صورة

--قم باستخراج سطر النص بأكمله ، باستثناء تلك الأجزاء

المحدد من قبل -c و / أو -f.


صورة


كما نرى ، الطريق مختون مقتطفات النص غير مرنة نوعًا ما. مختون هو أفضل استخدام لاستخراج نص من الملفات التي تنتجها برامج أخرى ، بدلا من النصوص التي يكتبها البشر مباشرة. سنلقي نظرة على موقعنا توزيعات.txt لمعرفة ما إذا كان "نظيفًا" بما يكفي ليكون عينة جيدة لملفات مختون أمثلة. إذا استخدمنا قط مع الالجائزة -A الخيار ، يمكننا معرفة ما إذا كان الملف يلبي متطلبات الحقول المفصولة بعلامات جدولة:



[me @ linuxbox ~] $ قطة -A distros.txt

SUSE ^ I10.2 ^ I12 / 07/2006 $

Fedora^I10^I11/25/2008$ SUSE^I11.0^I06/19/2008$

Ubuntu^I8.04^I04/24/2008$ Fedora^I8^I11/08/2007$ SUSE^I10.3^I10/04/2007$

Ubuntu^I6.10^I10/26/2006$ Fedora^I7^I05/31/2007$ Ubuntu^I7.10^I10/18/2007$ Ubuntu^I7.04^I04/19/2007$

[me @ linuxbox ~] $ قطة -A distros.txt

SUSE ^ I10.2 ^ I12 / 07/2006 $

Fedora^I10^I11/25/2008$ SUSE^I11.0^I06/19/2008$

Ubuntu^I8.04^I04/24/2008$ Fedora^I8^I11/08/2007$ SUSE^I10.3^I10/04/2007$

Ubuntu^I6.10^I10/26/2006$ Fedora^I7^I05/31/2007$ Ubuntu^I7.10^I10/18/2007$ Ubuntu^I7.04^I04/19/2007$


SUSE ^ I10.1 ^ I05 / 11/2006 $

Fedora^I6^I10/24/2006$ Fedora^I9^I05/13/2008$ Ubuntu^I6.06^I06/01/2006$ Ubuntu^I8.10^I10/30/2008$ Fedora^I5^I03/20/2006$

SUSE ^ I10.1 ^ I05 / 11/2006 $

Fedora^I6^I10/24/2006$ Fedora^I9^I05/13/2008$ Ubuntu^I6.06^I06/01/2006$ Ubuntu^I8.10^I10/30/2008$ Fedora^I5^I03/20/2006$


إن شكلها جيد. لا توجد مسافات مضمنة ، فقط علامات تبويب مفردة بين الحقول. نظرًا لأن الملف يستخدم علامات التبويب بدلاً من المسافات ، فسنستخدم الامتداد -f خيار لاستخراج حقل:


[me @ linuxbox ~] $ قص و 3 توزيعات

12/07/2006

11/25/2008

06/19/2008

04/24/2008

11/08/2007

10/04/2007

10/26/2006

05/31/2007

10/18/2007

04/19/2007

05/11/2006

10/24/2006

05/13/2008

06/01/2006

10/30/2008

03/20/2006

[me @ linuxbox ~] $ قص و 3 توزيعات

12/07/2006

11/25/2008

06/19/2008

04/24/2008

11/08/2007

10/04/2007

10/26/2006

05/31/2007

10/18/2007

04/19/2007

05/11/2006

10/24/2006

05/13/2008

06/01/2006

10/30/2008

03/20/2006


لأن لدينا توزيعات الملف محدد بعلامات جدولة ، فمن الأفضل استخدامه مختون لاستخراج الحقول بدلاً من الأحرف. هذا لأنه عندما يكون الملف محددًا بعلامات جدولة ، فمن غير المحتمل أن يحتوي كل سطر على نفس عدد الأحرف ، مما يجعل حساب مواضع الأحرف داخل السطر أمرًا صعبًا أو مستحيلًا. ومع ذلك ، في مثالنا أعلاه ، قمنا الآن باستخراج حقل يحتوي لحسن الحظ على بيانات ذات طول متطابق ، حتى نتمكن من إظهار كيفية عمل استخراج الأحرف عن طريق استخراج السنة من كل سطر:



[me @ linuxbox ~] $ قطع -f 3 توزيعات. txt | قطع -c 7-10

2006

2008

2008

2008

2007

2007

2006

2007

[me @ linuxbox ~] $ قطع -f 3 توزيعات. txt | قطع -c 7-10

2006

2008

2008

2008

2007

2007

2006

2007


2007

2007

2006

2006

2008

2006

2008

2006

2007

2007

2006

2006

2008

2006

2008

2006


صورة

عن طريق الركض مختون للمرة الثانية في قائمتنا ، يمكننا استخراج مواقع الشخصيات من 7 إلى 10 ، والتي تتوافق مع السنة في حقل التاريخ لدينا. ال 7-10 التدوين هو مثال على النطاق. ال مختون تحتوي صفحة الدليل على وصف كامل لكيفية تحديد النطاقات.


توسيع علامات التبويب

الأهداف و توزيعات.txt تم تنسيق الملف بشكل مثالي لاستخراج الحقول باستخدام مختون. ولكن ماذا لو أردنا ملفًا يمكن التلاعب به بالكامل مختون بالحروف وليس الحقول؟ سيتطلب ذلك منا استبدال أحرف الجدولة داخل الملف بعدد المسافات المقابل. لحسن الحظ ، تتضمن حزمة GNU Coreutils أداة لذلك. اسم الشيئ توسيع، يقبل هذا البرنامج إما وسيطة ملف واحدة أو أكثر أو مدخلات قياسية ، ويخرج النص المعدل إلى الإخراج القياسي.

إذا قمنا بمعالجة ملف توزيعات.txt ملف مع توسيعيمكننا استخدام قطع ج لاستخراج أي نطاق من الأحرف من الملف. على سبيل المثال ، يمكننا استخدام الأمر التالي لاستخراج سنة الإصدار من قائمتنا ، عن طريق توسيع الملف واستخدام مختون لاستخراج كل حرف من المركز الثالث والعشرين حتى نهاية السطر:

[me @ linuxbox ~] $ قم بتوسيع ملف distros.txt | قطع ج 23-

يوفر Coreutils أيضًا ملف غير متسع برنامج لاستبدال علامات التبويب للمسافات.


عند العمل مع الحقول ، من الممكن تحديد محدد حقل مختلف بدلاً من حرف الجدولة. هنا سنقوم باستخراج الحقل الأول من / الخ / باسود ملف:


[me @ linuxbox ~] $ قطع -d ':' -f 1 / etc / passwd | رئيس

الجذر الخفي

[me @ linuxbox ~] $ قطع -d ':' -f 1 / etc / passwd | رئيس

الجذر الخفي


bin sys sync games man lp mail news

bin sys sync games man lp mail news


باستخدام -d الخيار ، نحن قادرون على تحديد حرف النقطتين كمحدد المجال.


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: