Linux基础命令之文件过滤及内容编辑处理(二)
. wc
用于统计文件的行数,单词,或字节数
-l # 统计行数
-L # 打印最长行的长度,一般脚本中判断字符长度
-c # 统计字节数
-w # 统计单词数
-m 统计字符数
. iconv
转换文件的编码格式
iconv [options] [-f from-encoding] [-t to-encoding] [inputfile]...
源编码 新编码 输入文件
-f # 从编码A转换
-t # 转换为编码B
-l # 显示系统支持的编码
-o # 将输出输入到指定文件
iconv -f gb2312 -t utf-8 GB2312.txt
. dos2unix
将DOS格式文件转换成UNIX格式
dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...]
windows系统下,文本是以"\r\n"作为换行标志的,而UNIX下的文本文件是以“\n”作为换行标志的
反之,unix2dos将linux文件的“\n”转化成Windows文件的“\r\n”
. diff
逐行比较纯文本文件的内容
默认显示格式有如下三种提示
a-add
c-change
d-delete
"<"打头的行属于文件1, ">"打头的行属于文件2
-y # 并排输出显示两个文件的不同之处
. vimdiff
此命令是调用vim命令打开文件可以同时打开2个,3个,最多4个文件,并且会以不同的颜色来区分文件的差异
. rev
按行反向输出文件内容,将内容倒着输出
[root@mysql-141 ~]# echo {1..10} 1 2 3 4 5 6 7 8 9 10 [root@mysql-141 ~]# echo {1..10}|rev 01 9 8 7 6 5 4 3 2 1
. tr
从标准输入中替换,缩减或删除字符,并将结果写到标准输出
-d 删除字符
-s 保留连续字符的第一个字符,删除其他字符
-c 使用第一个字符串set1的补集,取反
tr 'abc' 'xyz' <xiaolizi.txt # tr命令jie接文件比较特殊,需要输入重定向,将稳中出现的abc替换为xyz,所有a替换成x,b-y,c-z tr '[a-z]' '[A-Z]' <xiaolizi.txt tr -d 'xiaolizi'<xiaolizi.txt # 使用参数-d删除字符 tr -d '\n\t' <xiaolizi.txt # 使用-d参数删除所有换行符和制表符 echo 'xxxiiiaaalllliiiizzz'|tr -s xiaolizi # 将连续字符压缩成一个 tr -c ‘0-9’ ‘*’ <xiaolizi.txt # 取反操作
. tee
将数据重定向到指定文件和屏幕上,各输出一份
-a 项文件追加内容,而不是覆盖
[root@mysql-141 ~]# ls 01-monitoring.py 02-ps_pid.sh backup.sh new_aa test 01-monitoring.sh anaconda-ks.cfg install.log new_ab test.txt 02-ps_name.sh backup_check.sh install.log.syslog new_ac youhua.sh [root@mysql-141 ~]# ls|tee -a ls.txt 01-monitoring.py 01-monitoring.sh 02-ps_name.sh 02-ps_pid.sh anaconda-ks.cfg backup_check.sh backup.sh install.log install.log.syslog new_aa new_ab new_ac test test.txt youhua.sh [root@mysql-141 ~]# cat ls.txt 01-monitoring.py 01-monitoring.sh 02-ps_name.sh 02-ps_pid.sh anaconda-ks.cfg backup_check.sh backup.sh install.log install.log.syslog new_aa new_ab new_ac test test.txt youhua.sh