سؤال

و"AWK: لم يتم تعريف وظيفة systime"

ولكن systime وبنيت في القيادة

هل كانت مفيدة؟

المحلول

في سولاريس، /usr/bin/awk هو افتراضيا وصلة ل/usr/bin/oawk، التي لا تعترف systime كما بنيت في (أو الكثير من الملحقات الأخرى خلال الطبعة AWK 7TH). إما إعادة ربط /usr/bin/awk إلى /usr/bin/nawk أو استخدام nawk مباشرة، أو الحصول على GNU AWK (gawk) تثبيت واستخدام ذلك.

وأنظمة أخرى مثل يونيكس HP-UX، AIX قد ديهم قضايا مماثلة. ماك X (، وبالاستدلال، BSD) تثبيت غير GNU، الإصدار غير موسعة من awk (شكرا للتصحيح، DMcKee). لينكس لا. ويستخدم GNU AWK كما الرئيسي / awk فقط. بالطبع، يمكن بسهولة تثبيت GNU AWK على أي من هذه الأنظمة.

نصائح أخرى

ويبدو أن مسألة AWK "نكهة".

والبله (جنو AWK) يتضمن systime ()، ولكن ربما يكون الإصدار الذي تستخدمه لا ...

وإذا لم يقصد systime المكالمات لتتبع فروق التوقيت ضمن البرنامج النصي AWK نفسها، وهي حيلة للالتفاف على عدم وجود systime AWK () أن وظيفة أن يكون لتمرير قيمة هذا المتغير النظام كمتغير على سطر الأوامر AWK .

وكمثال على ذلك، على نظام بلدي يتم تثبيت كل gawk وmawk.

echo |mawk '{print systime()}'

وتنتج:

mawk: line 2: function systime never defined

وحين

echo |gawk '{print systime()}'

وتنتج:

1252953754

وهنا هو ما فعلته للحصول على الطابع الزمني

nawk '{system("date +%Y-%m-%d %H:%M:%S|tr -d \"\n\"");print" " $0 } '
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top