Linux基础命令之文件过滤及内容编辑处理(二)

时间:2023-03-08 23:12:46
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- 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个文件,并且会以不同的颜色来区分文件的差异

  Linux基础命令之文件过滤及内容编辑处理(二)

. rev

  按行反向输出文件内容,将内容倒着输出

  

[root@mysql- ~]# echo {..}

[root@mysql- ~]# echo {..}|rev
         

. 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 ‘-’ ‘*’ <xiaolizi.txt # 取反操作

. tee

   将数据重定向到指定文件和屏幕上,各输出一份

  -a  项文件追加内容,而不是覆盖

[root@mysql- ~]# ls
-monitoring.py -ps_pid.sh backup.sh new_aa test
-monitoring.sh anaconda-ks.cfg install.log new_ab test.txt
-ps_name.sh backup_check.sh install.log.syslog new_ac youhua.sh
[root@mysql- ~]# ls|tee -a ls.txt
-monitoring.py
-monitoring.sh
-ps_name.sh
-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- ~]# cat ls.txt
-monitoring.py
-monitoring.sh
-ps_name.sh
-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