امروز میخواستم یک تجربه ساده را با شما در میان بگذارم. امروز یک تکست فایل با حجم ۲۰ گیگابایت به دستم رسید. باز کردن این فایل بخاطر حجم زیادش با مشکلات و کندی روبرو خواهد شد. حتما دوستان برای رهایی از این مشکل از ابزارهایی مثل head و tail استفاده کردهاند. اینبار بنده از ابزار split برای تقسیم این فایل بزرگ به قطعات کوچکتر استفاده کردم که از syntax سادهای برخوردار میباشد.
Syntax split [options] filename prefix
ممکنه شما بخواهید فایل خودتون رو بر اساس تعداد خطوط یا حجم فایل تقسیمبندی کنید. ولی اگر شما از دستور split با پیشفرضهای default آن استفاده کنید فایل شما رو بر اساس تعداد خطوط (۱۰۰۰) به قطعات کوچکتر تقسیم میکند و برای Prefix از x استفاده میکند (به این صورت که بعد از x از aa شروع و به ترتیب ab و .... تا zz را برای فایلها نامگذاری خواهد کرد).
اگر بخواهید فایل خود را بر اساس تعداد خطوط دلخواه تقسیم کنید از سوئیچ l استفاده کنید:
# split -l 200 systemlog # ll total 172 -rw-rw-r-- 1 root root 76294 Mar 25 12:02 systemlog -rw-r--r-- 1 root root 14369 Mar 25 12:16 xaa -rw-r--r-- 1 root root 12795 Mar 25 12:16 xab -rw-r--r-- 1 root root 13566 Mar 25 12:16 xac -rw-r--r-- 1 root root 13681 Mar 25 12:16 xad -rw-r--r-- 1 root root 13840 Mar 25 12:16 xae -rw-r--r-- 1 root root 8043 Mar 25 12:16 xaf # cat xaa | wc -l; cat xab | wc -l; cat xac | wc -l; cat xad | wc -l; cat xae | wc -l; cat xaf | wc -l 200 200 200 200 200 99
و اگر بخواهید بر اساس سایز فایل آن را تقسیم کنیم میتوانیم از سوئیچ b استفاده کنیم:
# split -b 500MB httpd.log # ll -lh total 1.9G -rw-r--r-- 1 root root 954M Mar 25 12:35 httpd.log -rw-r--r-- 1 root root 477M Mar 25 12:38 xaa -rw-r--r-- 1 root root 477M Mar 25 12:38 xab
یا میتوانید بهجای MB از GB استفاده کنید.
با استفاده از سوئیچ d میتوانید از 00 01 02 ... بهجای aa, ab , ac ,.... به عنوان suffix استفاده کنید:
# split -d -b 200M httpd.log log # ll -lh total 1.9G -rw-r--r-- 1 root root 954M Mar 25 12:35 httpd.log -rw-r--r-- 1 root root 200M Mar 25 12:58 log00 -rw-r--r-- 1 root root 200M Mar 25 12:58 log01 -rw-r--r-- 1 root root 200M Mar 25 12:58 log02 -rw-r--r-- 1 root root 200M Mar 25 12:58 log03 -rw-r--r-- 1 root root 154M Mar 25 12:58 log04
مرجع:
https://linoxide.com/linux-how-to/split-large-text-file-smaller-files-linux/
- ۹۷/۰۶/۰۴