在linux中分割大文件,比如一个5gb日志文件,需要把它分成多个小文件,分割后以利于普通的文本编辑器读取。
有时,需要传输20gb的大文件到另一台服务器,也需要把它分割成多个文件,这样便于传输数据。
以下通过五个不同的例子,来讲解Linux下分割大文件的方法,供大家参考。
例1、以每个文件1000行分割
split命令分割文件成每个文件1000行,并且文件名依次为 [前缀]aa, [前缀]ab, [前缀]ac等,默认的前缀是X,每个文件的行数为1000行。
命令:
$ wc -l *
4450 mylog
1000 xaa
1000 xab
1000 xac
1000 xad
450 xae
例2、以每个文件20MB分割
分割文件为多个20MB的文件,附带-b选项。
命令:
$ ls -lh | tail -n +2
-rw------- 1 sathiya sathiya 102M Jul 25 18:47 logdata
-rw------- 1 sathiya sathiya 20M Jul 25 19:20 xaa
-rw------- 1 sathiya sathiya 20M Jul 25 19:20 xab
-rw------- 1 sathiya sathiya 20M Jul 25 19:20 xac
-rw------- 1 sathiya sathiya 20M Jul 25 19:20 xad
-rw------- 1 sathiya sathiya 20M Jul 25 19:20 xae
-rw------- 1 sathiya sathiya 1.6M Jul 25 19:20 xaf
例3、以每个文件50MB指定前缀分割
使用–bytes选项把文件分割成多个50MB的文件,–bytes类似-b选项,在第二个参数指定前缀。
命令:
$ ls -lh
total 204M
-rw------- 1 sathiya sathiya 102M Jul 25 18:47 logdata
-rw------- 1 sathiya sathiya 50M Jul 25 19:23 mydatafileaa
-rw------- 1 sathiya sathiya 50M Jul 25 19:23 mydatafileab
-rw------- 1 sathiya sathiya 1.6M Jul 25 19:23 mydatafileac
例4、基于行数分割文件
使用-l选项指定行数来把文件分割成多个行数相同的文件。
命令:
2591 testfile
$ split -l 1500 testfile importantlog
$ wc -l *
1500 importantlogaa
1091 importantlogab
2591 testfile
例5、以数字后缀命名分割文件
使用-d选项可以指定后缀为数字,如00,01,02..,而不是aa,ab,ac。
命令:
$ ls
testfile x00 x01 x02
可用选项
短选项 长选项 选项描述
-b –bytes=SIZE SIZE 值为每一输出档案的大小,单位为 byte。
-C –line-bytes=SIZE 每一输出档中,单行的最大 byte 数。
-d –numeric-suffixes 使用数字作为后缀。
-l –lines=NUMBER NUMBER 值为每一输出档的列数大小。
短选项 长选项 选项描述
-b –bytes=SIZE SIZE 值为每一输出档案的大小,单位为 byte。
-C –line-bytes=SIZE 每一输出档中,单行的最大 byte 数。
-d –numeric-suffixes 使用数字作为后缀。
-l –lines=NUMBER NUMBER 值为每一输出档的列数大小。
本节内容:
yum update提示Transaction Check Error
yum update系统时提示:
file /usr/lib/perl5/5.8.8/CGI.pm from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/lib/perl5/5.8.8/Digest.pm from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/c2ph.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/cpan.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/dprofpp.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/perlvms.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/perlvos.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
中间省略100行,都是关于perl的
file /usr/share/man/man1/perlwin32.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/perlxs.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/perlxstut.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/piconv.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/splain.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/xsubpp.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man3/CGI.3pm.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
Error Summary
-------------
经过仔细观察是perl的问题,其他软件单独update都没有问题。
64位系统内的i386和x64软件的冲突,那么卸载掉i386的冲突相关软件,一般可以解决问题。
两种情况,要不把perl的升级忽略掉,要不卸载了perl的i386,如果是其他软件的冲突,一样对待。
找出要冲突的软件
得到输出:
perl 5.8.8 i386
然后,卸载掉冲突的i386包:
再次升级,不会出现错误提示了,升级正常。
本节内容:
CentOS的默认服务
包括如下:
NetworkManager
自动在多种网络连接中进行转换,如果你的电脑有Wireless WiFi 和 Ethernet多种网络连接类型的话,可以选择开启。
NetworkManagerDispatcher
acpid
acpid(Advanced Configuration and Power Interface)是为替代传统的APM电源管理标准而推出的新型电源管理标准。通常笔记本电脑需要启动电源进行管理。
anacron
自动化运行任务守护进程。Red Hat Linux 随带四个自动化任务的工具:cron、anacron、at和 batc。当你的Linux服务器并不是全天运行,这个anacron就可以帮你执行在”crontab”设定的时间内没有执行的工作。
apmd
高级电源管理
atd
自动化运行任务守护进程。
auditd
审核信息,将消息写入控制台以及 audit_warn 电子邮件别名。用于存放内核生成的系统审查记录,这些记录会被一些程序使用。特别是对于SELinux用户来说。
autofs
自动安装管理进程automount,与NFS 相关,依赖于NIS
avahi-daemon
zeroconf配置的具体现实,对于没有DNS情况下的本地网络服务很有用,有点类似于mDNS,一般可以disable
avahi-dnsconfd
bluetooth
蓝牙
conman
console management
cpuspeed
监测系统空闲百分比,降低或加快CPU时钟速度和电压从而在系统空闲时将能源消耗降为最小,而在系统繁忙时最大化加快系统执行速度。
crond
自动计划任务
cups
cups(Common UNIX Printing System)是通用UNIX打印守护进程,为Linux提供第三代打印功能
dhcdbd
DHCP
dund
蓝牙拨号网络
firstboot
安装完之后的用户配置向导,用于第一次设置系统
gpm
(General Purpose Mouse Daemon )守护进程为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标的拷贝,粘贴操作以及弹出式菜单。
haldaemon
硬件监控系统
hidd
蓝牙H.I.D.服务器
ibmasm
ip6tables
ipv6 tables防火墙守护进程。
ipmi
iptables
iptables防火墙守护进程。
irda
红外端口守护进程。
irqbalance
对多个系统处理器环境下的系统中断请求进行负载平衡的守护程序。如果你只安装了一个CPU,就不需要加载这个守护程序。
kdump
初始化kdump的脚本
kudzu
硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作。如果你不打算增加新硬件,那么就可以关闭这个启动服务,以加快系统启动时间。
lvm2-monitor
mcstrans
主要用于SELinux
mdmonitor
mdmpd
RAID相关设备的守护程序。
messagebus
事件监控服务,在必要时向所有用户发送广播信息,如服务器将要重启。
microcode-ctl
可编码以及发送新的微代码到内核以更新Intel IA32系列处理器守护进程。
multipathd
netconsole
netfs
Network Filesystem Mounter,该进程安装和卸载NFS、SAMBA和NCP网络文件系统。
netplugd
网卡精灵进程,此服务监控网络界面,根据信号关闭或启动它,主要用于不经常连接的手提电脑。
network
激活已配置网络接口的脚本程序
nfs
网络文件系统守护进程。
nfslock
NFS是一个流行的通过TCP/IP网络共享文件的协议,此守护进程提供了NFS文件锁定功能。
nscd
密码与群查找服务,此服务用于减慢N.I.S/Y.P.nist,ldap和hesiod之类的服务.专门为这些服务提供更长的中断时间。NIS, NIS+, LDAP, or hesiod服务密码控制
ntpd
网络时间同步
oddjobd
pand
蓝牙个人区域网络,用于基于网络的家庭区域蓝牙技术