linux - Filtration and Editing

1.cat(concatenate):查看文件内容;把多个文件合并成一个;创建编辑新文件(不常用);非交互式的编辑或追加内容到文件尾部;清空文件内容;

-n:从1开始对所有输出的内容按行编号
-b:和-n选项功能类似,但会忽略显示空白行行号
例子:
    cat > test.txt << EOF
    welcome to my home
    EOF :按回车结束,EOF必须成对出现,也可以用其他成对标签体态;将welcome to my home输入到test文件中,该编辑文件方式可以放在脚本中执行
    cat test1.log test2.log > test3.log:将test1和test2中的内容合并输入到test3中
    [root@oldboy ~]# cat menu.sh 
    #! /bin/bash

    menu(){
        cat <<END
       1.[apple]
       2.[pear]
       3.[banana]
       please select one that you like:
       END
  }
   menu
   [root@oldboy ~]# sh menu.sh 执行脚本
  1.[apple]
  2.[pear]
  3.[banana]
  please select one that you like:

2.more:分页显示文件内容

+num:从行号num开始显示
-num:指定屏幕显示大小为num行
子命令:
    空格键:向下滚动一屏
    b:返回上一屏
    /查找文本:查找到指定的文本
    q:退出more
例子:
    ls /etc/ | more -10:etc下有很多文件目录,直接用ls查看会显示太多,借助more可以分页显示

3.less:分页显示文件内容

less命令的基本功能类似于more命令,可以分页显示文件内容,但比more的功能更强大。less在读取文件内容时,并不是像more、vi一次性将整个文件加载出来之后再显示,而是会根据需要来加载文件的内容,这样打开文件的速度会更快
-N:显示每行的行号
交互子命令:
    b:向前翻一页
    空格键:向后翻一页
    /:向下查找字符串
    ?:向上查找字符串

4.head:显示文件内容头部,默认输出文件的开头10行

-n 指定显示的行数

5.tail:显示文件内容尾部,默认输出文件最后10行

-n:指定显示的行数
-f:实时输出文件变化后追加的数据

6.tailf:跟踪日志文件,首先默认输出日志文件的最后10行,然后实时地显示文件的增加内容

-n:指定显示的行数,默认是最后10行

7.cut:从文本中提取一段文字并输出

-c:以字符为单位进行分割
-d:自定义分隔符,默认以tab为分隔符
-f:与选项-d一起使用,指定显示哪个区域
N:第N个字节、字符或字段
-N:从第N个字节、字符或字段开始直至行尾
N-M:从第N个到第M(含第M)个字节、字符或字段
-M:从第1到第M(含第M)个字节、字符或字段
例子:
    cut -c 2-10 test.txt:获取test.txt每行第二个字符到第十个字段输出出来
    cut -d : -f 1 /etc/passwd:以冒号为分隔符,显示第一列
    cut -d : -f 3-5 /etc/passwd:以冒号为分隔符,显示第三列到第五列

8.tr:从标准输入中替换、缩减或者删除字符,并将结果写到标准输出

-d:删除字符
例子:
    tr 'abc' 'xyz' < oldboy.txt:将文件中的a替换成x,b替换成y,c替换成z
    tr '[a-z]' '[A-Z]' < oldboy.txt:将文件中的小写字母替换成大写字母
    tr -d 'abc' < oldboy.txt:将文件中的每个a、b、c字符删掉

9.split:按照指定的行数或者指定的文件大小分割文件

10.paste:将文件按照行与行进行合并,中间使用tab隔开

-d:指定合并的分隔符,默认是tab
-s:每个文件占用一行
例子:
    paste test1 test2:将test1和test2按照每行与每行进行合并,分隔符是tab
    paste -d : test1 test2:将test1和test2按照每行与每行进行合并,分隔符是:
    paste -s test1 :将test1文件中的内容列成一行

11.sort:将输入文件内容按照指定的规则进行排序,然后将排序结果输出

-n:依照数值的大小进行排序
-t:指定分隔符
-r:倒序排列
-k:指定区间排序
例子:
    sort -n test:将test中的内容按照数据大小正序排列
    sort -r test:将test中的内容按照数据大小倒序排列
    sort -t " " -k2 test:将test中的内容以空格为分隔符,按照第二列进行排序 

12.join:对每一对具有相同内容的输入行,整合为一行输出到标准输出,默认是把输入的第一个字段作为连接字段,字段之间用空格隔开

13.uniq:可以输出或忽略文件中的重复行,只能去掉临近行的重复,因此一般与sort合用

-c:去除重复行,并计算每行出现的次数
例子:
    uniq test.txt:打印出test.txt内容,去掉重复行(只取出临近重复行)
    sort test.txt | uniq -c:将test.txt内容进行排序,然后打印test.txt中内容,并去掉重复行进行统计重复行的数量

14.wc:统计文件的行数、单词书或字节数

-l:统计行数:
-L:打印最长行的长度
例子:
    wc -l /etc/inittab:统计inittab文件的行数
    wc -L /etc/inittab:统计inittab文件最长行的长度

15.iconv:转换文件的编码格式

-f encodingA:从编码A转换
-l encoding:显示系统支持的编码
-t encodingB:转换成编码B
-o:将输出输入到指定文件
例子:
    iconv -f gb2312 -t utf-8 test.txt:将test.txt文件从编码gb2312转换成编码utf-8

16.dos2unix(unix2dos):将dos格式文件转换成unix格式(将unix格式文件转换成dos格式)

17.diff:比较两个文件的不同,默认输出有三种格式(a-add增加,c-change修改,d-delete删除)<箭头打头的属于文件1,以>箭头打头的属于文件2

-y:以并列的方式显示文件的异同之处
-W:在使用-y参数时,指定显示宽度
-c:使用上下文的输出格式
-u:使用统一格式输出
例子:
    diff test1 test2:比较test1和test2两个文件的不同,并打印出不同之处

18.vimdiff:可视化比较工具

19.rev:反向输出文件内容

20.od:按不同进制显示文件

21.tee:多重定向,将数据重定向到文件,同事提供一份重定向数据的副本作为后续命令的标准输入,就是把数据重定向到给定文件和屏幕上

-a:向文件追加内容,而不是覆盖
例子:
    ls | tee ls.txt:将ls命令的输出结果写入ls.txt文件中,同时打印到屏幕上

22.vi/vim:纯文本编辑器

特殊符号:

    *:匹配任意(0个或多个)字符或字符串,包括空字符串
    ?:匹配任意一个字符,有且只有一个字符
    [abcd]:匹配abcd中任何一个字符
    [!abc]:匹配除了abc这三个字符以外的任意一个字符(有且只有一个),也可以写成[^abc]
    ~:用户的家目录
    -:代表上一次(相对于当前路径)用户所在路径
    .:代表当前目录
    ..:代表上一级目录
    单引号:所见即所得,即输出单引号内容时,引号里的内容原样输出
    双引号:有命令(要反引下)、变量、特殊转义符等,会先把命令、变量、转义字符解析出来,然后输出最终内容
    反引号:用于引用命令,执行的时候命令会被执行,相当于$(),赋值和输出都要将命令反引号引起来
    ;:表示一个命令的结束,也是命令的间隔符
    #:表示注释;root命令提示符
    |:管道符
    $:字符串前加$表示字符串变量内容;表示普通用户的命令提示符
    \:转义字符
    “>” 、“1>”:输出重定向,会清除文件所有的以前的数据
        例子:echo oldboy > a.txt = echo oldboy 1> a.txt;将oldboy输出到a.txt文件中
   “<” 、“0<”:输入重定向,会清除文件所有的以前的数据
        例子:xrang -n 2 < a.txt = xrang -n 2 0< a.txt;将a.txt文件中的内容分成每组两个元素输入到xrang命令中,输出到屏幕上
    mail -s "邮件标题" 邮箱地址      <邮件内容(文件)
    mail -s "training" oldboy@qq.com </etc/hosts
    “>>”、 “1>>”:追加输出重定向,内容追加,只在文件尾部追加
        例子:echo oldboy >> a.txt = echo oldboy 1>> a.txt;将oldboy追加到a.txt文件末尾中
    “<<”、 “0<<”:追加输入重定向,内容追加,只在文件尾部追加
        例子:cat >> /data/a.txt <<EOF
                   I am studing Linux 
                  EOF ; 将I am studing Linux输入追加到/data/a.txt文件中,EOF为开始结束标志符,可以写成任意,前后一致即可
    “2>”:错误重定向, 清除原有数据,将错误信息输入
        例子:cho oldboy > a.txt;将cho命令错误提示信息输出到a.txt文件中
    “2>>”:错误追加重定向, 追加文件尾部,将错误信息输入
        例子:cho oldboy >> a.txt;将cho命令错误提示信息追加输出到a.txt文件中
    说明:标准输入是一个名称,它表示数据的一个流入方向,通常表示数据从文件等流入处理工具或命令中,用代码0表示,使用<、<<符号来表示数据朝尽头所指的方向流动;标准输出也是一个名称,它也表示数据的一个流入方向,通常用代码1表示,使用>、>>符号来表示数据朝尽头所指的方向流动箭头是数据流向,和标准输入不同的是,1表示将命令等处理的一般信息输出到文件;标准错误输出是另一个名称,也是表示数据的一个流入方向,通常用代码2表示,使用>、>>符号来指示数据朝箭头方向流动,和标准输出不同的是标准错误输出2表示将错误的信息输出到文件等,不输出正确的普通信息
    {}:生成序列,在{}中使用逗号分隔多个字符或单词时,可以被分别与前面的字符结合处理:
    例子:
        echo A{B,C} 在屏幕上打印AB AC
        echo A{,C} 在屏幕上打印A AC
        touch A{,C}.txt 创建A.txt和AB.txt文件
        touch A{0..3}.txt 创建A0.txt、A1.txt、A2.txt、A3.txt文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值