PDA

View Full Version : سوال: یک دستور اسمبلی



absolute_z3ro
جمعه 30 مرداد 1394, 16:27 عصر
سلام و خسته نباشید.
می خواستم در رابطه با خط دستور زیر یک توضیحی بهم بدید ، ممنون


nasm|awk '{print $2}'

ممنون میشم در رابطه با nasm و awk هم توضیحی بدید.
موفق باشید.

reza_noei
شنبه 31 مرداد 1394, 08:56 صبح
سلام
این دستور مربوط به زبان اسمبلی نیست. این دستور یک دستور لینوکس است.
برنامه awk برنامه ایست که از روی زبان برنامه نویسی awk ایجاد شده و به منظور پردازش و اسکن pattern در یک فایل استفاده میشه.
مثلا دستور :
awk '{print $2}' /usr/passwd


بدین گونه تفسیر میشه که عمل 2$ print را برروی فایل use/passwd/ اعمال میکند.فایل در برنامه awk به مانند مجموعه ای از رکوردهاست که این رکوردها دارای فیلدهایی (کلمات) هستند و فیلدها با کاراکتر space از هم جدا شده اند. در هر خط هم یک رکورد وجود دارد. عمل 2$ print فیلدهای دوم هر رکورد را چاپ میکند. یعنی اگر فایل a.txt به شکل زیر باشد:
Temp ali linux
Awk example Test


و دستور این باشد :‌


awk '{print $2}' a.txt

خروجی به شکل زیر خواهد بود :‌


ali
example
----------------------------
برنامه nasm هم یک اسمبلر رایگان هست که هم نسخه ویندوزی داره و هم لینوکسی و عملگر | در دستور شما باعث میشه که خروجی دستور قبل از آن که nasm بوده باشد بعنوان فایل ورودی به دستور


awk '{print $2}'
وارد شود. ولی دستور nasm به خودی خود خروجی ندارد و اجرای این دستور ایجاد خطا میکند میتوانید ابتدا برای آزمایش دستور nasm -h را برای مشاهده help برنامه nasm اجرا کنید و سپس دستور زیر را اجرا کنید که این ستون های دوم هر سطر از این فایل را برای شما چاپ کند :

nasm -h | awk '{print $2}'