COLUMN(1)

الاسم
column - جدولة القوائم في أعمدة

موجز

column [الخيارات] [ملف ...]

الوصف

تنسق أداة column دخلها في أعمدة متعددة. وهي تدعم ثلاثة أنماط:

ملء الأعمدة قبل الصفوف
    هذا هو النمط المبدئي (مطلوب للتوافقية مع الإصدارات السابقة).

ملء الصفوف قبل الأعمدة
    يُفعل هذا النمط باستخدام خيار -x, --fillrows.

create a table
    تحديد عدد الأعمدة التي يحتوي عليها الدخل وإنشاء جدول. يُفعل هذا النمط بخيار -t/--table. يُحاذى الخرج وفقاً لعرض الطرفية في النمط التفاعلي، وإلى 80 عموداً في النمط غير التفاعلي (راجع --output-width لمزيد من التفاصيل). يمكن تطبيق تنسيق مخصص باستخدام خيارات --table-* المتنوعة.

يُؤخذ الدخل من ملف، أو من الدخل القياسي خلاف ذلك. تُتجاهل الأسطر الفارغة وتُرمّز كافة التسلسلات متعددة البايت غير الصالحة باستخدام اصطلاح x<hex>.

الخيارات

المعامل أعمدة لخيارات --table-* أدناه هو قائمة مفصولة بفاصلة من الأسماء التي يوفرها المستخدم والمعرفة بـ --table-columns name1,name2,...، أو فهارس الأعمدة كما تظهر في الدخل بدءاً من 1، أو أسماء معرفة بواسطة سمة --table-column. من الممكن خلط الأسماء والفهارس. يمكن استخدام العنصر النائب الخاص '0' (مثلاً -R0) لتحديد كافة الأعمدة و '-1' (مثلاً -R -1) لتحديد آخر عمود مرئي. من الممكن استخدام نطاقات مثل '1-5' عند الإشارة إلى الأعمدة بالفهارس.

-J, --json
    استخدام تنسيق مخرجات JSON لطباعة الجدول. الخيار --table-columns مطلوب، ويُنصح بالخيار --table-name.

-c, --output-width width
    تُنسق المخرجات بعرض محدد كعدد من المحارف. لاحظ أن المدخلات الأطول من عرض لا تُقلم مبدئياً. القيمة المبدئية هي عرض الطرفية في الوضع التفاعلي، و80 عموداً في الوضع غير التفاعلي. لا تُقلم ترويسات الأعمدة أبداً.

    يمكن استخدام العنصر النائب unlimited (أو 0) لمنع تقييد عرض المخرجات. يُنصح بهذا عند إعادة توجيه المخرجات إلى ملف.

    (الاسم الطويل الأصلي لهذا الخيار كان --columns؛ وهذا الاسم مهجور منذ الإصدار v2.30.)

-d, --table-noheadings
    حذف طباعة الترويسة. يسمح هذا الخيار بوجود أسماء أعمدة يوفرها المستخدم في سطر الأوامر، ولكنه يبقي الترويسة مخفية عند طباعة الجدول.

-o, --output-separator سلسلة_محارف
    محدد الأعمدة لمخرجات الجدول (المبدئي هو مسافتان).

-s, --input-separator, --separator الفواصل
    محددات عناصر المدخلات الممكنة (المبدئي هو مسافة بيضاء).

-S, --use-spaces رقم
    عند عدم استخدام وضع الجدول، تُستخدم المسافات بدلاً من علامات الجدولة لمحاذاة الأعمدة. يحدد هذا الخيار الحد الأدنى لعدد المسافات التي تفصل بين عمودين.

-t, --table
    يُحدد عدد الأعمدة التي تحتوي عليها المدخلات ويُنشأ جدول. تُفصل الأعمدة مبدئياً بمسافة بيضاء، أو بالمحارف المعطاة باستخدام خيار --output-separator. مخرجات الجدول مفيدة للتنسيق الجمالي.

--table-colorscheme الاسم
    تحديد نظام الألوان. الاسم المبدئي هو "column". لمزيد من التفاصيل راجع قسم الألوان.

-C, --table-column attributes
    تعريف عمود بقائمة من السمات مفصولة بفاصلة. يمكن استخدام هذا الخيار أكثر من مرة، فكل استخدام يعرف عموداً واحداً. تحل السمات محل بعض خيارات --table-: على سبيل المثال، --table-column name=FOO,right يعرف عموداً يُحاذى النص فيه إلى اليمين. هذا الخيار يتعارض مع خيار -N/--table-columns.

    السمات المتاحة هي:

    name=سلسلة-محارف
        اسم العمود.

    trunc
        تقليم نص العمود عند الضرورة. مماثل لخيار --table-truncate. لاحظ أن ترويسة العمود لا تُقلم أبداً، وهي تمثل الحد الأدنى لعرض العمود.

    tree
        استخدام هذا العمود للمخرجات الشبيهة بالشجرة. راجع --tree لمزيد من التفاصيل.

    right
        يُحاذى النص لليمين. مماثل لخيار --table-right.

    width=رقم
        عرض العمود. يُستخدم كملمح فقط. لفرضه، حدد سمة strictwidth أيضاً. الحد الأدنى الفعلي للعرض هو عرض ترويسة العمود.

    strictwidth
        اتباع width= بصرامة لضبط الحد الأدنى لحجم العمود. يمكن أن يكون العمود أكبر إذا وفر عرض المخرجات مساحة كافية.

    noextremes
        تجاهل عرض المحتوى الطويل بشكل غير معتاد. راجع --table-noextreme لمزيد من التفاصيل.

    hidden
        لا يُطبع العمود. راجع --table-hide لمزيد من التفاصيل.

    wrap
        السماح باستخدام خلية متعددة الأسطر للنصوص الطويلة إذا لزم الأمر. لاحظ أن ترويسة العمود لا تُلف أبداً وتحدد الحد الأدنى لعرض العمود. راجع --table-wrap لمزيد من التفاصيل.

    wrapnl
        اللف عند محارف السطر الجديد؛ تُعامل الأسطر الجديدة في بيانات الخلية كفواصل أسطر.

    wrapzero
        اللف عند محارف الصفر (NUL) في بيانات الخلية.

    json=النوع
        تعريف نوع العمود لمخرجات JSON. الأنواع المتاحة هي string و number و float و array-string و array-number و boolean.

    color=الاسم
        تعريف لون العمود للمخرجات على الطرفية. الاسم هو اسم لون (black، blink، blue، bold، brown، cyan، darkgray، gray، green، halfbright، lightblue، lightcyan، lightgray، lightgreen، lightmagenta، lightred، magenta، red، reset، reverse، و yellow) أو أرقام تسلسل ألوان ANSI مفصولة بفاصلة منقوطة، ولكن بدون بادئة 'ESC[' ولا لاحقة 'm'. على سبيل المثال، "37;41" يعرف تسلسلات لخلفية حمراء ونص أمامي أبيض. لمزيد من التفاصيل راجع قسم الألوان.

    colorkey=الاسم
        يشير إلى اللون كما هو معرف في نظام الألوان. راجع --table-colorscheme.

    headercolor=الاسم
        مثل color=، ولكن يعرف اللون لترويسة العمود فقط.

    headercolorkey=الاسم
        يشير إلى لون الترويسة كما هو معرف في نظام الألوان. راجع --table-colorscheme.

-N, --table-columns names
    تحديد أسماء الأعمدة بقائمة مفصولة بفاصلة. تُستخدم الأسماء لترويسة الجدول ولعنونة الأعمدة في وسائط الخيارات. راجع أيضاً --table-column.

-l, --table-columns-limit رقم
    تحديد الحد الأقصى لعدد أعمدة المدخلات. سيحتوي العمود الأخير على كافة بيانات السطر المتبقية إذا كان الحد أصغر من عدد الأعمدة في بيانات المدخلات.

-R, --table-right أعمدة
    محاذاة النص لليمين في الأعمدة المحددة.

-T, --table-truncate أعمدة
    تحديد الأعمدة التي يمكن تقليم النص فيها عند الضرورة، وإلا فقد تُطبع مدخلات الجدول الطويلة جداً على أسطر متعددة.

-E, --table-noextreme أعمدة
    تحديد الأعمدة التي ينبغي فيها تجاهل المحتوى الأطول من المتوسط عند حساب عرض العمود. يؤثر الخيار على حساب العرض وتنسيق الجدول، لكن النص المطبوع لا يتأثر.

    هذا الخيار نشط مبدئياً لآخر عمود مرئي.

-e, --table-header-repeat
    يُطبع سطر الترويسة لكل صفحة.

-K, --table-header-as-columns
    استخدام أول سطر مدخل كترويسة للجدول. هذا الخيار يتعارض مع --table-columns و --table-column.

-W, --table-wrap أعمدة
    تحديد الأعمدة حيث يمكن استخدام خلايا متعددة الأسطر للنصوص الطويلة. مبدئياً، يُلف النص وفقاً لعرض العمود. استخدم --wrap-separator ليلف عند محارف فصل مخصصة بدلاً من ذلك. لاحظ أن ترويسة العمود لا تُلف أبداً وتحدد الحد الأدنى لعرض العمود.

--wrap-separator سلسلة-محارف
    استخدام سلسلة_محارف كفاصل لِلف النص داخل الأعمدة التي فُعل فيها اللف. يُستبدل الفاصل بأسطر جديدة عند عرض النص. يتطلب هذا الخيار وضع الجدول وأعمدة مفعل فيها اللف (راجع --table-wrap). على سبيل المثال، استخدم | للسماح باللف عند محارف الأنبوب (pipe) داخل بيانات العمود.

-H, --table-hide أعمدة
    لا تطبع الأعمدة المحددة. يمكن استخدام العنصر النائب الخاص '-' لإخفاء كافة الأعمدة غير المسماة (راجع --table-columns).

-O, --table-order أعمدة
    يُحدد ترتيب أعمدة المخرجات.

-n, --table-name اسم
    يُحدد اسم الجدول المستخدم لمخرجات JSON. المبدئي هو "table".

-m, --table-maxout
    تُملأ كافة المساحة المتاحة في المخرجات.

-L, --keep-empty-lines
    الحفاظ على الأسطر التي تحتوي على مسافات بيضاء فقط في الدخل. المبدئي هو تجاهل جميع الأسطر الفارغة. كان الاسم الأصلي لهذا الخيار هو --table-empty-lines، ولكنه أُهمل منذ ذلك الحين لأنه يعطي انطباعاً خاطئاً بأن الخيار ينطبق فقط على نمط الجدول.

-r, --tree عمود
    يُحدد العمود المراد استخدامه لمخرجات تشبه الشجرة. تُتجاهل الاعتمادات الدائرية والظواهر الشاذة الأخرى في علاقة الابن والأصل بصمت.

-i, --tree-id عمود
    تحديد العمود الذي يحتوي على معرف الابن الفريد لكل سطر لعلاقة الابن بالأب.

-p, --tree-parent عمود
    تحديد العمود الذي يحتوي على معرف الأب لكل سطر لعلاقة الابن بالأب.

-x, --fillrows
    تُملأ الصفوف قبل ملء الأعمدة.

--color[=متى]
    لون المخرجات. المعامل الاختياري متى يمكن أن يكون auto أو never أو always. إذا حُذف معامل متى، فإنه يعود إلى auto آليًا. يمكن تعطيل الألوان؛ للاطلاع على الوضع المبدئي المدمج الحالي راجع مخرجات --help. انظر أيضًا قسم الألوان.

-h، --help
    اعرض نص المساعدة ثم اخرج.

-V، --version
    اعرض الإصدار واخرج.

الألوان

نُفذ تلوين المخرجات بواسطة وظيفة terminal-colors.d(5). يمكن تعطيل التلوين الضمني بملف فارغ

    /etc/terminal-colors.d/column.disable

للأمر column أو لجميع الأدوات بواسطة

    /etc/terminal-colors.d/disable

منذ الإصدار 2.41، دُعم متغير البيئة $NO_COLOR أيضاً لتعطيل تلوين المخرجات ما لم يُمكن صراحةً بخيار من سطر الأوامر.

يتخطى $XDG_CONFIG_HOME/terminal-colors.d أو $HOME/.config/terminal-colors.d الخاص بالمستخدم الإعداد العام.

لاحظ أن تلوين المخرجات قد يُمكن مبدئياً، وفي هذه الحالة ليس من الضروري وجود أدلة terminal-colors.d بعد.

اسم نظام الألوان المبدئي هو "column"، ويمكن تخطيه بواسطة

    --table-colorscheme name

بعد ذلك يمكن استخدام ملف الاسم[.disable|enable|scheme] في /etc/terminal-colors.d/، أو $XDG_CONFIG_HOME/terminal-colors.d، أو $HOME/.config/terminal-colors.d/.

يمكن الإشارة إلى اسم اللون المنطقي (المفتاح) في نظام الألوان عبر خصائص العمود colorkey= و headercolorkey=. على سبيل المثال

    echo 'important red'           > ~/.config/terminal-colors.d/cooltable.scheme
    echo 'important-header 37;41' >> ~/.config/terminal-colors.d/cooltable.scheme
    echo -e "a b c\naa bb cc\naaa bbb ccc" | column -t \
            --table-colorscheme=cooltable \
            -C name=AAA,colorkey=important,headercolorkey=important-header \
            -C name=BBB,color=magenta,headercolor=cyan \
            -C name=CCC,color=green

سيؤدي هذا إلى إنشاء نظام ألوان باسم "cooltable" وتلوين ترويسة وبيانات العمود الأول وفقاً للمفاتيح من النظام. سيُلون العمودان الآخران بأسماء الألوان المباشرة.

البيئة

COLUMNS
    يُستخدم لتحديد حجم الشاشة إذا لم تتوفر أي معلومات أخرى.

LIBSMARTCOLS_DEBUG=all
    يُفعّل مخرجات تصحيح أخطاء libsmartcols.

LIBSMARTCOLS_DEBUG_PADDING=on
    يستخدم محارف حشو مرئية.

تاريخ

ظهر أمر column في 4.3BSD-Reno.

العلل

غيّر الإصدار 2.23 الخيار ‎-s ليكون غير شرِه، على سبيل المثال:

    printf "a:b:c\n1::3\n" | column -t -s ':'

المخرجات القديمة:

    a  b  c
    1  3

المخرجات الجديدة (منذ util-linux 2.23):

    a  b  c
    1     3

أشارت الإصدارات التاريخية لهذه الأداة إلى أن "الصفوف تُملأ قبل الأعمدة" بشكل مبدئي، وأن الخيار -x يعكس ذلك. لم يعكس هذا الصياغ السلوك الفعلي، وقد صُحّح منذ ذلك الحين (انظر أعلاه). قد تستمر تطبيقات أخرى للأمر column في استخدام الوثائق القديمة، ولكن يجب أن يكون السلوك متطابقاً في أي حال.

أمثلة

اطبع fstab مع سطر ترويسة ومحاذاة الأرقام لليمين:

    sed 's/#.*//' /etc/fstab | column --table --table-columns SOURCE,TARGET,TYPE,OPTIONS,FREQ,PASS --table-right FREQ,PASS

اطبع fstab وأخفِ الأعمدة غير المسماة:

    sed 's/#.*//' /etc/fstab | column --table --table-columns SOURCE,TARGET,TYPE --table-hide -

اطبع شجرة:

    echo -e '1 0 A\n2 1 AA\n3 1 AB\n4 2 AAA\n5 2 AAB' | column --tree-id 1 --tree-parent 2 --tree 3
    1  0  A
    2  1  |-AA
    4  2  | |-AAA
    5  2  | `-AAB
    3  1  `-AB

طباعة الجدول بفاصل لف مخصص:

    echo -e 'Name:Description\nJohn:A|software|developer\nJane:A|data|scientist' | column --table --separator ':' --table-wrap 2 --wrap-separator '|'
    Name  Description
    John  A
          software
          developer
    Jane  A
          data
          scientist

انظر أيضاً

colrm(1)، ls(1)، paste(1)، sort(1)

التبليغ عن الأخطاء

لتقارير العِلل، استخدم

التوفر

الأمر column جزء من حزمة util-linux التي يمكن تنزيلها من