zoukankan      html  css  js  c++  java
  • Liunx运维(三)-文件过滤及内容编辑处理

    文档目录:

    一、cat:合并文件或查看文件内容

    二、tac:反向显示文件内容

    三、more:分页显示文件内容

    四、less:分页显示文件内容

    五、head:显示文件头部内容

    六、tail:显示文件尾部内容

    七、tailf:跟踪日志文件

    八、cut:从文本中提取一段文字并输出

    九、split:分割文件

    十、paste:合并文件

    十一、sort:文本排序

    十二、join:按两个文件的相同字段合并

    十三、uniq:去除重复行

    十四、wc:统计文件的行数、单词数或字节数

    十五、iconv:抓换文件的编码格式

    十六、dos2unix:将DOS格式文件转换成UNIX格式

    十七、diff:比较两个文件的不同

    十八、vimdiff:可视化比较工具

    十九、rev:反向输出文件内容

    二十、tr:替换或删除字符

    二十一:od:按不同进制显示文件

    二十二:tee:多重定向

    二十三:vi/vim:纯文本编辑器

    ---------------------------------------分割线:正文--------------------------------------------------------

    一、cat:合并文件或查看文件内容

    1、cat=concatenate

    2、 cat > test.txt <<EOF   - - - EOF    #生成文本,结尾EOF必须顶格编写

     3、 cat > test.txt <<-EOF   - - - EOF    #生成文本,结尾EOF不必顶格编写,但要table缩进(ctrl+v+i)

    4、cat  test.txt   #查看文件内容

     5、cat -n test.txt #对文件内容按行编号

     6、cat -b test.txt  #对文件内容按行编号,且不对空行编号

     7、cat -E test.txt  #显示文件结尾隐藏的$符号

     8、cat -s test.txt #两行以上的空格,只会显示一行

     9、cat test.txt test2.txt #连接并显示多个文件

    二、tac反向显示文件内容

    1、tac -b test.txt  #反向显示文件内容

    三、more:分页显示文件内容

    1、more test3.txt #满屏显示文件内容,最后显示内容的百分比

    =

     2、more -20 test3.txt #定义显示的行数

     3、more  +10 -10 test3.txt #+10,从指定的行开始显示内容

     4、ls /etc| more -5 #分页展示文件夹下的文件

    四、less:分页显示文件内容

    1、less -N test3.txt #满屏显示并显示行号

     2、ls /etc|less #分页查看目录下文件内容

     3、less与more交互式子命令及说明

    v:进入vi编辑界面

    q:退出less/more

    五、head:显示文件内容头部

    1、head test3.txt #默认显示前10行

     2、head -3 test3.txt #显示文件的前n行

     3、head -c 10 /etc/passwd #显示文件前10个字节

     

     4、head -1 /etc/passwd /etc/gshadow #显示多个文件头部内容

    六、tail:显示文件内部尾部

    1、tail /etc/passwd #默认显示尾部10行

     2、tail -n 5 /etc/passwd #显示尾部5行

     3、tail -5 /etc/passwd #显示尾部5行,简洁写法

     4、tail -f /opt/tools/elasticsearch-7.10.1/logs/elasticsearch.log #实时监控文件变化

     5、tail -F 123.txt #实时监控,文件不存在报错,但是会等待文件生成不退出命令

    七、tailf:跟踪日志文件

    1、tailf /opt/tools/elasticsearch-7.10.1/logs/elasticsearch.log #默认跟踪10行命令

    2、tailf -5 /opt/tools/elasticsearch-7.10.1/logs/elasticsearch.log #指定跟踪最后n行

     八、cut:从文本中提取一段文字并输出

    1、cut -b 3 test4.txt #只输出第3个字符

     2、cut -b 3-5,10 test4.txt #支持-的写法,多个定位用逗号分割

     3、cut -b -5 test4.txt #表示从第1个字符到第5个字符

     4、cut -b 6- test4.txt #表示从第6个字符到尾部

     5、cut -c 3-5 test4.txt #以字符分割,中文也显示正常

     6、cut -d : -f 1 /etc/passwd #指定以:作为分割显示

    九、split:分割文件

    1、split -l 27 test3.txt new_  #每27行进行分割一次,分割的文件以new_开头

     2、split -l 27 -a 3 test3.txt new_ #-a指定后缀长度

    3、split -l 27 -d  test3.txt new_ #-d使用数字后缀

    十、paste:合并文件

    1、paste test.txt test2.txt #按行合并,默认table分割

     2、paste -d: test.txt test2.txt #指定分隔符合并

     3、paste -s test.txt test2.txt #-s将一列内容转为1行

    十一、sort:文本排序

    1、sort testSort.txt #将文件内容转为ASCII码,从小到大进行排序

     2、sort -r  testSort.txt #倒序排序

     3、sort -u #去除重复行

     4、sort -t -k #指定列排序

    十二、join:按两个文件的相同字段合并

    1、join testj1.txt testj2.txt #直接合并2个文件,需要排序一致的

    十三、uniq:去除重复行

    1、uniq testUniq.txt #去除重复行展示

     2、uniq -c testUniq.txt #去除重复行并统计次数

     3、sort testUniq.txt |uniq -c #去重排序

    十四、wc:统计文件的行数、单词数或字节数

    1、wc -l /etc/init.d/README  #查看行数

     2、wc -c /etc/init.d/README  #查看字节数

     3、wc -m /etc/init.d/README  #查看字符数

     4、wc -w /etc/init.d/README  #查看单词数

     5、wc -L /etc/init.d/README  #查看最长行的长度

     6、wc  /etc/init.d/README  #查看行数、单词数、字节数

    十五、iconv:转换文件的编码格式

    背景:主要由于windows编辑的中文字符在liunx中会有乱码

    iconv -f gb2312 -t utf-8 GB2312.txt #将源文件为gb2313的编码转换为utf-8格式

    十六、dos2unix:将dos格式文件转换成unix格式

    1、dos2unix:将dos格式文件转换成unix格式

    2、unix2dos:将unix格式文件转换成dos格式

    十七、diff:比较两个文件的不同

    构造:test1、test2

     diff默认显示格式为三种:a-add,c-change,d-delete

    1、diff test1 test2 #d/a签字的数字是文本1的行号,字符后面的是文本2的行号,不容易识别

     2、 diff -y test1 test2 #并排格式输出

     3、 diff -y -W 20 test1 test2 #-W指定宽度

     4、diff -c test1 test2 #上下文格式输出

     5、diff -u test1 test2 #统计格式输出

     6、diff /etc/rc3.d/ /etc/rc6.d/ #比较两个目录

    十八、vimdiff:可视化比较工具

     vimdiff test1 test2 #可视化比较,退出需要两次(:q)

    十九、rev:反向输出文件内容

    1、echo {1..10} | rev #字符串反转

    2、cat test3|rev #文本反转

    二十、tr:转换或删除

    1、tr '123' 'xyz' < test4 #替换123

     2、tr '[a-z]' '[A-Z]' < test4 #小写转大写

     3.tr '[0-9]' '[a-j]' < test4 #将数字转字母

     4、 tr -d 'mrwhite' < test4 #删除mrwhite

     5、tr -d ' ' < test4 #删除 换行符和制表符

     6、echo 'iiiiammmmmmmrrwwhiiiitttee' | tr -s iamrwhite #删除连续字符

     7、tr -c '0-9' '*' < test4 #取数字反-替换为*

    二十一、od:按不同进制显示文件

    od -Ax -tcx /bin/ls|more #使用od命令查看内容

    二十二、tee:多重定向

    1、ls|tee ls.txt #将标准输出内容覆写到文件中

     2、ls|tee -a ls.txt #将标准输出内容追加到文件中

    二十三、vi/vim:纯文本编辑器

    1、普通模式

    (1) G或(shift+g):将光标移动到文件的最后一行

    (2) gg或(1G)(1gg):光标移动至文件的第一行

    (3) 0:将光标位置移动到当前行开头

    (4) $:将光标位置移动到当前行结尾

    (5) n<Enter>:将光标从当前位置向下移动n行

    (6) ngg或(nG):移动到文件的第n行,可配置:set nu查看

    (7) H:光标移动到当前窗口的最上方的那一行

    (8) M:光标移动到当前窗口中间的那一行

    (9) L:光标移动到当前窗口最下方的那一行

    (10) /1.txt :从光标位置开始,向下寻找同名的字符串,n:向下继续搜索 N:向上继续搜索

    (11) ?1.txt :从光标位置开始,向上寻找同名的字符串,n:向上继续搜索 N:向下继续搜索

    (12) :g/1/s//a/g:将符合1的内容全部替换为a,斜线为分隔符,可以用@、#等替换

    (13) :%s/a/1/g:将符合a的内容全部替换为1,斜线为分隔符,可以用@、#等替换

    (14) :n1,n2s/1/a/gc:n1、n2为数字,在第n1行和n2行之间寻找1,用a替换

    (15) yy:复制光标所在的当前行

    (16) nyy:复制光标开始向下的共n行

    (17) p/P:p将已复制的数据粘贴到光标的下一行,P则为粘贴到光标的上一行

    (18) dd:删除光标所在的当前行

    (19) ndd:删除从光标下开始n行

    (20) u:回滚前一个执行过的动作

    (21) . :重复前一个执行过的动作

    (22) x:向后删除字符

    (23) X:向前删除字符

    (24) d1G:删除当前行至第一行

    (25) dG:删除当前行至最后一行

    (26) d0:删除当前光标文本至行首

    (27) d$:删除当前光标文本至行尾

    2、编辑模式

    (1) i:在当前光标所在处插入

    (2) a:在当前光标所在的下一个字符处插入文字

    (3) I:在当前所在行行首第一个非空格字符处开始插入

    (4) A:在当前所在行行尾的最后一个字符插入文字

    (5) O:在当前行所在行的上一行处插入一行

    (6) o:在当前行所在行的下一行处插入一行

    (7) ESC :推出编辑模式,回到命令模式

    3、命令模式

    (1) :wq:退出并报错

    (2) :wq!:退出并强制保存

    (3) :q!:强制退出,不保存

    (4) :n1,n2 w filename:将n1行到n2行的内容保存成filename这个文件

    (5) :n1,n2 co n3:将n1行到n2行的内容复制到n3位置下

    (6) :n1,n2 m n3:将n1行到n2行的内容剪贴到n3位置下

    (7) !command:暂时离开vi到命令行模式下执行command命令显示结果

    (8) :set nu:显示行号

    (9) :set nonu:取消行号

    (10) :vs filename:垂直分屏显示,同时显示当前文件和filename对应的文件的内容

    (11) :sp filename:水平分屏显示,同时显示当前文件和filename对应的文件的内容

    (12) I+#+ESC:(ctrl+v)可视化模式下一次注释所选的所行,取消注释可用:n1,n2s/#/gc,#替换为其他符号可换成别的操作

    (13) Del:(ctrl+v)可视化模式下,一次性删除所选内容

    (14) r:(ctrl+v)可视化模式下,一次性替换所选内容

  • 相关阅读:
    Rraspberry Pi 4B python3 安装opencv
    如何用arduion制作智能 垃圾桶
    MySQL(二)表结构的管理
    MySQL(一)基础操作
    vc++绘图基础
    网站签~
    (转)Oracle 知识日常积累
    利用反射判断bean属性不为空(null和空串)
    (转)Oracle 单字段拆分成多行
    svn 解决树冲突
  • 原文地址:https://www.cnblogs.com/mrwhite2020/p/14129421.html
Copyright © 2011-2022 走看看