Linux基础命令之文件过滤及内容编辑处理(一)
. cat
功能是连接多个文件并且打印到屏幕输出,或重定向到指定的文件
五大功能:
1.查看文件内容 cat file.txt
2.合并文件内容 cat file1 file2>newfile3
3.创建便捷新文件 cat >file 输入完成之后,使用ctrl+c结束即可
4.清空文件内容 cat /dev/null >file.txt
5.非交互式的编辑或者追加内容到文件尾部
cat>>file.txt<<EOF
1234
EOF
-n # 从1开始对多有输出的内容按行编号
-b # 与-n类似,但是会忽略空白行
-A # 每行的行尾显示$符号
. tac
反向显示文件内容
. more
分页显示文件内容
.less
less is more.分页显示文件内容,但是不是一次性加载文件内容,而是根据需要进行加载
尤其是打开超大文件时,为了不影响磁盘IO,会使用此命令
. head
显示文件内容头部,默认输出开头10行
-n 指定显示的行数,后面接n(数字)
-c 以字节为单位
. tail
显示文件内容的尾部,默认输出文件的最后10行
-f # 实时输出文件变化后追加的数据 一般监控程序执行产生的日志,来定位问题
--pid=进程号 # 与-f参数连用,进程结束后自动退出tail命令
-n # 显示行数
-c # 显示字节数,用法基本与head差不多
. tailf
跟踪日志文件
几乎等同于 tail -f ,与之不同的是,如果文件不增长,name不会去访问磁盘文件,也不会更改文件的访问时间
. cut
从文件的每一行剪切字节,字符或字段,并将这些字节,字符,或字段输出至标准输出
-b # 以字节为单位进行分割
-n # 取消分割多字节字符,与选项-b一起使用
-c # 以字符为单位进行分割
-d # 自定义分隔符,默认以空格为分隔符
-f # 指定显示那个区域,与-d配合使用
N # 第N个字节,字符,字段
N-
N-M
-M # 从第1到第M个。。
cut -b 3-5,10 xiaolizi.txt cut -b -3 xiaolizi.txt cut -b 3- xiaolizi.txt cut -b 3,3 xiaolizi.txt cut -c 2-10 xiaolizi.txt cut -d : -f 1 /etc/passwd cut -d : -f 3-5 /etc/passwd
. split
按照指定的行数或者指定的文件大小分割文件
split [OPTION]... [INPUT [PREFIX]]
-l # 指定分割后文件的最大行数
-b # 指定分割后文件的最大字节数
-a # 指定后缀长度,默认为2位字母
-d # 使用数字后缀
aplit -l 10 -a 3 /etc/inittab new2_ split -b 500k -d lvm lvm_
. paste
将文件按照行与行进行合并,中间默认使用空格隔开
paste test1 test2 paste -d: test1 test2 # 以:作为分隔符号 paste -s test1 # 将内容从列转换为行
. sort
将如数的文件内容按照指定的规则进行排序,然后排序结果输出
-n # 依照数值大小进行排序
-r # 倒序排序
-k # 按指定区间排序
-t # 指定分隔符
b # 忽略每行开头存在的空格字符
-u # 去出重复行 单独的命令uniq
sort -t " " -k2 xiaolizi.txt sort -n -t . -k3,3 -k4.1,4.3 arp.txt # -n:按数字排序 -t . :按 . 座位分隔域 -k3,3:按第三个字段开始到第三个字段结束排序 -k4.1,4.3:按第四个字段第一个字符开始,到第四个字段,第三个字符结束
. join
类似SQL语句中的join on语句,将文件里面关联的内容进行合并,一般处理鱼油相关性的文件
合并的文件内容要求是经过sort排序后的
. uniq
去除重复行
一般是是将sort排序后的内容,通过管道传递给uniq进行处理
-c # 取出重复行,并计算每行出现的次数
-d # 只显示重复的行
-u # 只显示唯一的行
cut -d '/' -f 3 xiaolizi.log|sort|uniq -c |sort -rn awk -F "/" '{print $3}' xiaolizi.log|sort|uniq -c|sort-rn