خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
آموزش استفاده از دستور paste در لینوکس
paste دستوری است که به شما امکان می دهد خطوط فایل ها را به صورت افقی(horizontal) ادغام کنید. این خروجی خطوط متشکل از خطوط متناظر پشت سر هم هر فایل مشخص شده به عنوان یک آرگومان است که با tab ها از هم جدا شده اند.
در این آموزش نحوه استفاده از دستور paste را توضیح خواهیم داد.
اگر هیچ فایلی به عنوان آرگومان ارائه نشده باشد و یا وقتی - به عنوان آرگومان داده می شود، paste از ورودی استفاده می کند.
فرض کنید فایل های زیر را داریم:
هنگامی که paste بدون هیچ گزینه ای فراخوانی و اجرا می شود، همه فایل های ارائه شده به عنوان آرگومان را می خواند و خطوط مربوطه فایل ها را به صورت افقی ادغام می کند که با فاصله از هم جدا شده اند:
به جای نمایش خروجی روی صفحه، می توانید با استفاده از عملگرهای >، >> آن را به یک فایل redirect کنید:
اگر فایل وجود نداشته باشد، ایجاد می شود. ولی اگر فایل وجود داشته باشد، عملگر > فایل را overwrite کرده ولی >> خروجی را به فایل اضافه می کند.
گزینه d- به شما امکان می دهد لیستی از کاراکترها را به عنوان جداکننده به TAB تعیین کنید. هر جداکننده به طور متوالی استفاده می شود. وقتی لیست تمام شد، paste دوباره از اولین کاراکتر جداکننده از سر گرفته می شود.
مثلا برای استفاده از کاراکتر _ به عنوان جداکننده به جای TAB، باید دستور زیر را اجرا کنید:
مثال دیگر مربوط به دو جدا کننده است:
خطوط فایل اول و دوم با کاراکتر اول از لیست جداکننده ها جدا می شوند. خط دوم و سوم فایل با جداکننده دوم از هم جدا می شوند. اگر فایل های بیشتری داده شد، paste دوباره از ابتدای لیست شروع می شود.
گزینه s- به paste می گوید که خطوط یک فایل را در یک زمان به جای یک خط از هر فایل نمایش دهد.
این دستور تمام خطوط فایل داده شده را در خطوط مجزا merge می کند:
هنگامی که در دستور از گزینه z- استفاده شود، Paste از یک کاراکتر null یا تهی برای محدود کردن موارد به جای کاراکتر خط جدید پیشفرض استفاده می کند. این رفتار زمانی خوب است که از paste در ترکیب با دستورهای find -print0 و xargs -0 برای مدیریت نام فایلهای حاوی کاراکترهای خاص استفاده شود.
در این آموزش نحوه استفاده از دستور paste را توضیح خواهیم داد.
How to Use the paste Command
paste یکی از دستورات خط فرمان کمتر شناخته شده و مورد استفاده لینوکس و یونیکس است. Syntax کلی دستور paste بصورت زیر می باشد:paste [OPTION].. [FILE]...
اگر هیچ فایلی به عنوان آرگومان ارائه نشده باشد و یا وقتی - به عنوان آرگومان داده می شود، paste از ورودی استفاده می کند.
فرض کنید فایل های زیر را داریم:
file1:
Iron Man
Thor
Captain America
Hulk
Spider Man
file2:
Black Widow
Captain Marvel
Dark Phoenix
Nebula
هنگامی که paste بدون هیچ گزینه ای فراخوانی و اجرا می شود، همه فایل های ارائه شده به عنوان آرگومان را می خواند و خطوط مربوطه فایل ها را به صورت افقی ادغام می کند که با فاصله از هم جدا شده اند:
paste file1 file2
Iron Man Black Widow
Thor Captain Marvel
Captain America Dark Phoenix
Hulk Nebula
Spider Man
به جای نمایش خروجی روی صفحه، می توانید با استفاده از عملگرهای >، >> آن را به یک فایل redirect کنید:
paste file1 file2 > file3
اگر فایل وجود نداشته باشد، ایجاد می شود. ولی اگر فایل وجود داشته باشد، عملگر > فایل را overwrite کرده ولی >> خروجی را به فایل اضافه می کند.
گزینه d- به شما امکان می دهد لیستی از کاراکترها را به عنوان جداکننده به TAB تعیین کنید. هر جداکننده به طور متوالی استفاده می شود. وقتی لیست تمام شد، paste دوباره از اولین کاراکتر جداکننده از سر گرفته می شود.
مثلا برای استفاده از کاراکتر _ به عنوان جداکننده به جای TAB، باید دستور زیر را اجرا کنید:
paste -d '_' file1 file2
Iron Man_Black Widow
Thor_Captain Marvel
Captain America_Dark Phoenix
Hulk_Nebula
Spider Man_
مثال دیگر مربوط به دو جدا کننده است:
paste -d '%|' file1 file2 file1
خطوط فایل اول و دوم با کاراکتر اول از لیست جداکننده ها جدا می شوند. خط دوم و سوم فایل با جداکننده دوم از هم جدا می شوند. اگر فایل های بیشتری داده شد، paste دوباره از ابتدای لیست شروع می شود.
Iron Man%Black Widow|Iron Man
Thor%Captain Marvel|Thor
Captain America%Dark Phoenix|Captain America
Hulk%Nebula|Hulk
Spider Man%|Spider Man
گزینه s- به paste می گوید که خطوط یک فایل را در یک زمان به جای یک خط از هر فایل نمایش دهد.
paste -s file1 file2
این دستور تمام خطوط فایل داده شده را در خطوط مجزا merge می کند:
Iron ManSpider Manerica
Black WiNebulahoenixel
هنگامی که در دستور از گزینه z- استفاده شود، Paste از یک کاراکتر null یا تهی برای محدود کردن موارد به جای کاراکتر خط جدید پیشفرض استفاده می کند. این رفتار زمانی خوب است که از paste در ترکیب با دستورهای find -print0 و xargs -0 برای مدیریت نام فایلهای حاوی کاراکترهای خاص استفاده شود.
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: