linux 文件行处理命令

时间:2021-10-19 16:25:42
  • linux下的文件类型

LINUX中的文件类型
d  
目录文件。
l  
符号链接(指向另一个文件,类似于瘟下的快捷方式)
s  
套接字文件。
b  
块设备文件,二进制文件。
c  
字符设备文件。
p  
命名管道文件。
-  
普通文件,或更准确地说,不属于以上几种类型的文件。
重点注意的是普通文件,在查看文件类型的时候使用file命令和ll命令结合来查看文件的类型
设备文件分为Block Device Driver和Character Device Drive两类。Character Device Drive又被称为字符设备或裸设备raw devices; Block Device Driver通常成为块设备。而Block Device Driver是以固定大小长度来传送转移资料 ;Character Device Driver是以不定长度的字元传送资料 。且所连接的Devices也有所不同,Block Device大致是可以随机存取(Random Access)资料的设备,如硬碟机或光碟机;而Character Device刚好相反,依循先後顺序存取资料的设备,如印表机 、终端机等皆是。
1.字符设备只能以字节为最小单位访问,而块设备以块为单位访问,例如512字节,1024字节等
2.块设备可以随机访问,但是字符设备不可以
3.字符和块没有访问量大小的限制,块也可以以字节为单位来访问
  • linux 如何获取文件中间的某些行

【一】从第3000行开始,显示1000行。即显示3000~3999行

cat filename | tail -n +3000 | head -n 1000

【二】显示1000行到3000行

cat filename| head -n 3000 | tail -n +1000

*注意两种方法的顺序

分解:

    tail -n 1000:显示最后1000行

    tail -n +1000:从1000行开始显示,显示1000行以后的

    head -n 1000:显示前面1000行

【三】用sed命令

 sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。

【一】例如将一个文件access.log均分成6个前缀为 LOG_ 的若干小文件,后缀为系数形式,且后缀为2位数字形式

先利用 wc -l access.log 读出 BLM.txt 文件一共有多少行,

例如输出结果为112896, 运行bc计算

112896/6

得到18816

再利用 split 命令:

split -l 18816 access.log -d -a 2 LOG_

注意:-l 后面跟行数,-d 说明系数不是字母而是数字(默认字母),-a 指明后缀系数的长度;

【二】要合并文件,使用命令:cat  LOG_* 

【一】如果确认只是空格:

1 sed 's/^ *//' infile

【二】如果判断不清行首是空格还是制表符的话, 还可以用这个:

1 sed 's/^[[:space:]]*//' infile