دستور csplit در لینوکس به شما کمک می کند تا یک فایل را بر اساس محتوای آن به جای تعداد بایت به چندین فایل تقسیم کنید.
csplit یک ابزار خط فرمان محبوب لینوکس است که برای تقسیم محتویات یک فایل به دو قسمت استفاده می شود. فایلی که باید تغییر دهید باید یک فایل متنی با پسوند “.txt” باشد.
استفاده از دستور آسان است و در تمام توزیع های لینوکس به خوبی کار می کند. با استفاده از پرچم های مختلف موجود برای csplit، می توانید خروجی را نیز بر اساس نیاز خود تغییر دهید.
در اینجا نحوه استفاده از csplit برای تقسیم یک فایل در لینوکس آورده شده است.
csplit چیست؟
csplit که در لینوکس و سایر سیستمعاملهای مشابه یونیکس استفاده میشود، میتواند یک فایل را به فایلهای جداگانهای که توسط خطوط زمینه تعیین میشود تقسیم کند.
سینتکس اصلی دستور به صورت زیر است:
csplit [OPTION] [PATTERN]
csplit در مقابل تقسیم
اکثر کاربران لینوکس دوست دارند هنگام تقسیم یک فایل به چندین فایل کوچکتر از دستور split استفاده کنند. مشکل این دستور این است که برای تقسیم فایل ها به اندازه بایت یا اندازه خط تکیه می کند.
این امکان پذیر نیست در سناریوهایی که می خواهید فایل ها را بر اساس محتوای آنها تقسیم کنید، نه اندازه آنها. این زمانی است که csplit به کمک می آید زیرا فایل را به تکه های با اندازه ثابت بر اساس محتوا به جای تعداد بایت تقسیم می کند.
نحوه نصب csplit در لینوکس
csplit تقریباً روی تمام توزیعهای لینوکس از پیش نصب شده است. اما اگر با خطای csplit: command not found مواجه شدید، به این معنی است که ابزار بر روی سیستم شما نصب نشده است. برای نصب csplit در اوبونتو، اجرا کنید:
sudo apt-get install coreutils
در Arch Linux اجرا کنید:
sudo pacman -S coreutils
برای نصب csplit روی فدورا و RHEL:
sudo dnf install coreutils
نحوه استفاده از csplit در لینوکس
برای مشاهده نحوه عملکرد csplit، یک فایل متنی در سیستم خود ایجاد کنید. از دستور touch برای ایجاد یک فایل خالی استفاده کنید.
touch filename.txt
پس از ایجاد فایل، آن را با ویرایشگر نانو باز کنید تا محتوای آن را تغییر دهید.
nano filename.txt
هنگامی که مقداری محتوا به فایل اضافه کردید، Ctrl + X و سپس Y را فشار دهید تا ذخیره و بسته شود.
برای تأیید محتوای فایل با استفاده از دستور cat، اجرا کنید:
cat filename
از دستور csplit برای تقسیم یک فایل استفاده کنید
برای اینکه بفهمید csplit چگونه کار می کند، ابتدا به محتویات فایلی که در اینجا به عنوان مثال استفاده می شود نگاه کنید.
فایل شامل 9 خط از اعداد 1 تا 9 است. اگر باید فایل را به دو قسمت تقسیم کنید، چگونه به csplit میگویید که کدام محتویات را به فایل اول ارسال کنید و کدام را به دیگری؟ آسان است. در دستور، فقط باید به csplit بگویید که تقسیم را از کدام خط شروع کند.
این کار با تعیین شماره خط انجام می شود. به عنوان مثال، اگر می خواهید فایل را از خط سوم با کلمه “London” تقسیم کنید، در دستور 3 را ذکر خواهید کرد. دستور را به این صورت وارد کنید:
csplit filename.txt 3
این دستور بلافاصله فایل را به دو قسمت تقسیم می کند. از دستور ls برای فهرست کردن تمام محتویات دایرکتوری برای دیدن فایل های خروجی استفاده کنید. فایل های جدید را با نام های xx00 و xx01 در کنار فایل اصلی پیدا خواهید کرد.
از دستور cat برای تایید محتویات هر دو فایل استفاده کنید.
همانطور که می بینید، csplit فایل را از خط سوم به دو قسمت تقسیم می کند که در دستور مشخص شده است.
گزینه های فرمان csplit
در اینجا برخی از گزینه های خط فرمان csplit وجود دارد که می توانید استفاده کنید:
1. پیشوند فایل های خروجی را تغییر دهید
همچنین به عنوان پرچم پیشوند شناخته می شود، -f پیشوند نام فایل را تغییر می دهد. ممکن است متوجه شده باشید که وقتی csplit فایل را تقسیم می کند، فایل های جدید ایجاد شده دارای xx به عنوان پیشوند در نام فایل ها هستند. می توانید با استفاده از پرچم -f در دستور آن را تغییر دهید.
به عنوان مثال، اگر می خواهید نام فایل ها به جای xx به عنوان پیشوند abc باشد، دستور را به این صورت صادر کنید:
csplit -f abc filename.txt 3
همانطور که قابل مشاهده است، پس از تقسیم، هر دو فایل دارای پیشوند abc در نام ها هستند.
2. هنگام بروز خطا، فایل ها را نگه دارید
اگر در دستور csplit خطایی وجود داشته باشد، گزینه -k یا –keep-files فایل های خروجی را حذف نمی کند.
دستور معیوب زیر را صادر کنید:
csplit -k randomfile.txt 2 {3}
3. تعداد ارقام در نام فایل را تغییر دهید
با استفاده از این گزینه میتوانید به دستور csplit بگویید که چند رقم را میخواهید در نام فایل زیر پیشوند ببینید. به آن پرچم ارقام نیز می گویند.
دستور زیر را برای حفظ تنها یک رقم در نام فایل صادر کنید:
csplit -n 1 randomfile.txt 2
بدون پرچم -n، به طور پیش فرض، دو رقم در نام فایل خواهید دید.
4. فایل را بدون خروجی شمارش اندازه تقسیم کنید
پرچم -s که به عنوان پرچم بی صدا نیز شناخته می شود، فایل را بدون ذکر تعداد اندازه فایل های خروجی، بی صدا تقسیم می کند.
csplit -s randomfile.txt 3
5. راهنمای خط فرمان را مشاهده کنید
برای مشاهده جزئیات همه گزینه های موجود برای csplit، از پرچم -h یا –help در دستور استفاده کنید.
csplit --help
6. شماره نسخه csplit را بررسی کنید
برای اینکه ببینید از کدام نسخه csplit استفاده می کنید، دستور را با پرچم –version اجرا کنید:
csplit --version
7. یک خط خاص را در حین تقسیم حذف کنید
همچنین می توانید از گزینه –suppress-matched command-line برای حذف یک خط خاص هنگام تقسیم فایل استفاده کنید.
csplit --suppress-matched filename.txt 5
هنگام ایجاد دو فایل، csplit خط پنجم را نادیده می گیرد و فایل را از خط بعدی تقسیم می کند.
خط پنجم فایل اصلی عبارت “برلین” است. در فایل خروجی «برلین» حذف شده بود.
با یک فرمان در لینوکس، فایل ها را بدون دردسر تقسیم کنید
ابزارهای خط فرمان زیادی برای مدیریت فایل ها در سیستم لینوکس وجود دارد. یکی از آنها csplit است. به طور پیش فرض، در تمام سیستم های لینوکس در دسترس است. اگر نه، می توانید آن را به سادگی از طریق خط فرمان نصب کنید.
csplit یک راه آسان و کارآمد برای تقسیم یک فایل زمانی است که باید فایل را بر اساس محتویات آن تقسیم کنید. csplit با گزینه های مختلف خط فرمان ارائه می شود که به شما انعطاف پذیری می دهد تا خروجی را به روشی که می خواهید تنظیم کنید. چندین ابزار خط فرمان برای مشاهده محتوای یک فایل در لینوکس وجود دارد، اگر می خواهید فایل ها را پس از تقسیم شدن بررسی کنید.