欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

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

程序员文章站 2024-02-04 21:52:46
. wc 用于统计文件的行数,单词,或字节数 -l # 统计行数 -L # 打印最长行的长度,一般脚本中判断字符长度 -c # 统计字节数 -w # 统计单词数 -m 统计字符数 . iconv 转换文件的编码格式 iconv [options] [-f from-encoding] [-t to- ......

. 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个文件,并且会以不同的颜色来区分文件的差异

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

 

. 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