• 查看文件及内容处理命令(21个命令)


    cat命令

    cat命令:用于查看纯文本文件(内容较少的)

    格式:“cat [选项] [文件]”。

    参数:

    参数 作用
    -n 显示行号

    例子:

    [root@localhost ~]# cat -n  filecheck.md5
         1  d41d8cd98f00b204e9800998ecf8427e  1.test
         2  d41d8cd98f00b204e9800998ecf8427e  2.test
    

    tac命令

    tac命令:反向显示文件内容。

    格式:“tac [选项] [文件]”。

    例子:

    [root@localhost ~]# tac filecheck.md5
    d41d8cd98f00b204e9800998ecf8427e  2.test
    d41d8cd98f00b204e9800998ecf8427e  1.test
    

    more命令

    more命令:用于查看纯文本文件(内容较多的)

    格式:“more [选项]文件”。

    操作:空格或回车下一页

    less命令

    less命令:less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

    格式:less [选项] 文件

    head命令

    head命令:用于查看纯文本文档的前N行

    格式:“head [选项] [文件]”。

    tail命令

    tail命令:用于查看纯文本文档的后N行或持续刷新内容

    格式:“tail [选项] [文件]”。

    cut命令

    cut命令:用于按“列”提取文本字符

    格式:“cut [参数] 文本”。

    参数:

    参数 作用
    -d 设置间隔符号
    -f 设置需要看的列数

    例子:

    # 获取用户名
    [root@localhost ~]# cut -d: -f1  /etc/passwd
    root
    bin
    daemon
    ···
    

    split命令

    split命令:用于将一个文件分割成数个。

    该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。

    格式: split [OPTION]... [INPUT [PREFIX]]

    split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
    

    参数:

    参数 作用
    -<行数> 指定每多少行切成一个小文件
    -b<字节> 指定每多少字节切成一个小文件
    --help 在线帮助
    -version 显示版本信息
    -C<字节> 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
    [输出文件名] 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号

    例子:

    # 每3行分割
    [root@localhost ~]# split -3 pwd aaa
    
    # 查看文件
    [root@localhost ~]# ls  aaa*
    aaaaa  aaaab  aaaac  aaaad  aaaae  aaaaf  aaaag  aaaah
    
    [root@localhost ~]# cat aaaaa
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    
    

    paste命令

    paste命令:用于合并文件的列。

    格式: paste [OPTION]... [FILE]...

    参数:

    参数 作用
    -d<间隔字符>或--delimiters=<间隔字符> 用指定的间隔字符取代跳格字符。
    -s或--serial 串列进行而非平行处理。
    [文件…] 指定操作的文件路径

    例子:

    [root@localhost ~]# cat aaaaa
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    
    [root@localhost ~]# cat aaaab
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    
    # paste合并的效果
    [root@localhost ~]# paste aaaaa aaaab
    root:x:0:0:root:/root:/bin/bash adm:x:3:4:adm:/var/adm:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin        lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync
    
    # 换行符做分隔
    [root@localhost ~]# paste -d "
    " aaaaa aaaab
    root:x:0:0:root:/root:/bin/bash
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    
    

    sort命令

    sort命令:对文本文件按行排序

    格式:sort [OPTION]... [FILE]...
    sort [OPTION]... --files0-from=F

    sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]
    

    参数:

    参数 作用
    -b 忽略每行前面出现的空格符号
    -c 检查文件是否已经按照顺序排序
    -d 处理英文字符,数字及空格字符外,忽略其他字符
    -f 将小写字符视为大写字符
    -i 除了040至176之间的ASCII字符外,忽略其他的字符。
    -m 将几个排序好的文件进行合并。
    -M 将前面3个字母依照月份的缩写进行排序。
    -n 依照数值的大小排序。
    -o<输出文件> 将排序后的结果存入指定的文件。
    -r 以相反的顺序来排序。
    -t<分隔字符> 指定排序时所用的栏位分隔字符。
    +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

    例子:

    # 排序
    [root@localhost ~]# sort aaa
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    
    # 指定分隔符,第k列作为排序依据
    [root@localhost ~]# sort -t: -k 3  aaa
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    

    uniq命令

    uniq命令:用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

    格式: uniq [OPTION]... [INPUT [OUTPUT]]

    uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]
    

    参数:

    参数 作用
    -c 在每列旁边显示该行重复出现的次数。
    -d 仅显示重复出现的行列。
    -f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
    -s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
    -u或--unique 仅显示出一次的行列。
    -w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
    [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
    [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

    例子

    # 直接使用只能去重相邻行的
    
    # 源文件
    [root@localhost ~]# cat 1.txt
    hello world
    nihao
    nihao
    nihao
    hello world
    
    [root@localhost ~]# uniq -c 1.txt
          1 hello world
          3 nihao
          1 hello world
    
    # 统计重复行的次数
    [root@localhost ~]# sort 1.txt |uniq -c
          2 hello world
          3 nihao
    
    

    wc命令

    wc命令:用于统计指定文本的行数、字数、字节数

    格式:“wc [参数] 文本”。

    参数:

    参数 作用
    -l 只显示行数
    -w 只显示单词数
    -c 只显示字节数

    iconv命令

    iconv命令:对于给定文件把它的内容从一种编码转换成另一种编码。

    格式:iconv [选项...] [文件...]

    参数:

    参数 作用
    -f, --from-code=NAME 原始文本编码
    -t ,--to-code=NAME 输出文本编码
    -o, --output=FILE 输出文件
    -c 忽略输出中的非法字符

    例子:

    # 修改编码为gbk
    [root@localhost ~]# vim 2.txt
    [root@localhost ~]# iconv -f UTF-8 -t GBK 1.txt -o 2.txt
    
    # 查看文件编码类型
    [root@localhost ~]# file 2.txt
    2.txt: ISO-8859 text
    
    

    dos2unix命令

    dos2unix命令:将 DOS 格式文件转换成 UNIX 格式。

    格式:dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]

    参数:

    参数 作用
    -k 保持输出文件的日期不变
    -q 安静模式,不提示任何警告信息
    -V 查看版本
    -c 转换模式,模式有:ASCII, 7bit, ISO, Mac, 默认是:ASCII
    -o 写入到源文件
    -n 写入到新文件

    例子

    最简单的用法就是dos2unix直接跟上文件名:

    # 加不加-o效果一样
    [root@localhost ~]# dos2unix 1.txt
    dos2unix: converting file 1.txt to Unix format ...
    
    [root@localhost ~]# dos2unix -o 1.txt
    dos2unix: converting file 1.txt to Unix format ...
    

    diff命令

    diff命令:用于比较多个文本文件的差异

    格式:“diff [参数] 文件”。

    参数:

    参数 作用
    -q, --brief 确认两个文件是否不同
    -c, -C NUM, --context[=NUM] 复制上下文的输出行数(默认为3行)

    例子:

    # 文件相同无输出,文件不同会显示不同
    [root@localhost ~]# diff -q 1.txt 1.txt.bak
    [root@localhost ~]# vim 1.txt.bak
    
    [root@localhost ~]# diff -q 1.txt 1.txt.bak
    Files 1.txt and 1.txt.bak differ
    
    
    # 显示不同的上下文(默认三行)
    [root@localhost ~]# diff -c 1.txt 1.txt.bak
    *** 1.txt       2019-07-18 04:01:22.776329996 -0400
    --- 1.txt.bak   2019-07-18 04:01:57.407055344 -0400
    ***************
    *** 3,5 ****
    --- 3,6 ----
      nihao
      你好
      hello world
    + ooooo
    
    # 指定上下文5行
    [root@localhost ~]# diff -C 5  1.txt 1.txt.bak
    *** 1.txt       2019-07-18 04:01:22.776329996 -0400
    --- 1.txt.bak   2019-07-18 04:01:57.407055344 -0400
    ***************
    *** 1,5 ****
    --- 1,6 ----
      hello world
      nihao
      nihao
      你好
      hello world
    + ooooo
    
    

    vimdiff命令

    vimdiff命令:命令行可视化文件比较工具,常用于文本文件。

    格式:vimdiff [options] file1 file2 [file3 [file4]]

    例子:

    vimdiff 1.txt 1.txt.bak
    

    rev命令

    rev命令:反转文件的每行内容

    格式:rev [options] [file ...]

    例子:

    [root@localhost ~]# cat 1.txt
    hello world
    nihao
    nihao
    你好
    hello world
    
    # 当前行反向输出
    [root@localhost ~]# rev 1.txt
    dlrow olleh
    oahin
    oahin
    好你
    dlrow olleh
    
    

    tr命令

    tr命令:用于替换文本文件中的字符

    格式:“tr [原始字符] [目标字符]”。

    例子:

    [root@localhost ~]# cat 1.txt | tr [a-z] [A-Z]
    HELLO WORLD
    NIHAO
    NIHAO
    你好
    HELLO WORLD
    

    join命令

    join命令:用来将两个文件中,制定栏位内容相同的行连接起来。

    格式:join [OPTION]... FILE1 FILE2

    参数:

    参数 作用
    -a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行;
    -e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串;
    -i或--ignore-case 比较栏位内容时,忽略大小写的差异;
    -o<格式> 按照指定的格式来显示结果;
    -t<字符> 使用栏位的分割字符;
    -v<1或2> 更-a相同,但是只显示文件中没有相同栏位的行;
    -1<栏位> 连接[文件1]指定的栏位;
    -2<栏位> 连接[文件2]指定的栏位。

    例子

    # 两个文件内容如下
    [root@localhost ~]# cat 1.txt
    hello 111
    world 222
    ni    333
    hao   444
    
    [root@localhost ~]# cat 1.txt.bak
    hello 50人
    world 100人
    ni    1000人
    hao   150人
    
    
    # 合并(属于等值连接,没有匹配的不连接)
    [root@localhost ~]# join 1.txt 1.txt.bak
    hello 111 50人
    world 222 100人
    ni 333 1000人
    hao 444 150人
    
    # 显示不同的行和重复的行
    [root@localhost ~]# join -a1  1.txt 1.txt.bak
    hello 111 50人
    world 222 100人
    ni 333 1000人
    hao 444
    
    [root@localhost ~]# join -a2  1.txt 1.txt.bak
    hello 111 50人
    world 222 100人
    ni 333 1000人
    
    
    

    grep命令

    grep命令:用于在文本中执行关键词搜索,并显示匹配的结果

    格式:“grep [选项] [文件]”。

    参数 作用
    -b 将可执行文件(binary)当作文本文件(text)来搜索
    -c 仅显示找到的行数
    -i 忽略大小写
    -n 显示行号
    -v 反向选择—仅列出没有“关键词”的行

    例子:

    # 显示存在null的行号
    [root@localhost ~]# grep -n null /etc/passwd
    17:tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    
    
    

    egrep命令

  • 相关阅读:
    产品方法论
    elastic search语句
    计算机科学发展的动力
    理论计算机科学学习网站
    算法学习 howto
    人工智能和机器学习 AI&ML howto
    Deep Learning 和 Knowledge Graph howto
    LISP语言学习资源
    Turing Year 2012
    如何做好计算机科学研究
  • 原文地址:https://www.cnblogs.com/akiz/p/11218765.html
Copyright © 2020-2023  润新知