zoukankan      html  css  js  c++  java
  • 文件过滤及编辑处理命令

    1-cat 查看文件内容或合并文件。
    常用功能:
    1)cat file.txt 查看文件内容
    2)cat file1.txt file2.txt >newfile.txt 合并成新文件(不算常用)
    3)cat>>file.txt<<# 追加内容到文件结尾
    just test cat function.
    # (必须顶格写,结束要用Enter)
    在工作中使用较多的。
    4)cat /dev/null >file.txt 清空文件内容 (/dev/null 是空设备,>是输出重定向,把空的结果输入到file文件)
    重要参数:
    -n 对所有输出的内容按行编号。
    -b 和-n功能相似,但是会忽略空白行。
    2-tac 跟cat相反,反向显示文件内容。
    工作中,一般是查看新建文件
    [root@honey ~]# cat /etc/passwd
    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@honey ~]# tac /etc/passwd
    wangc:x:503:503::/home/wangc:/bin/bash
    mysql:x:502:502::/home/mysql:/bin/bash
    nginx:x:501:501::/home/nginx:/sbin/nologin

    3-more:分页显示文件内容。 (建议使用下面less命令)
    格式:more 参数 文件
    常用参数:
    +num 从行号num开始显示。
    -p 不滚屏,而是清除整个屏幕,然后显示文本。
    常用more交互式子命令:
    空格键 向下滚动一屏。
    Enter 向下滚动一行。
    b 返回上一屏。
    = 输出当前行的行号。
    /字符串 查找的字符串。
    q 退出。

    4-less 分页显示文件内容。(比more更强大好用)
    常用参数:
    -N 显示每行的行号。
    -i 搜索时忽略大小写。
    less命令的交互式子明令:
    b 向前上一页。
    空格键 向下翻一页。
    /字符串 向下搜索字符串。
    ?字符串 向上搜索字符串。
    n 向后查找下一个匹配的文本。
    N 向前查找前一个匹配的文本。
    Enter 向下滚动一行。
    光标键的上下箭头 向上或向下滚动一行。

    5-head 显示文件头部内容,默认是前10行。
    常用参数:-n 指定显示的行数。
    [root@honey ~]# head -5 /etc/passwd
    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

    6-tail 显示文件尾部内容,默认是后10行,跟head相反。
    常用参数: -n 指定显示的行数。
    -f 实时输出并跟踪文件内容的变化。

    7-tailf 跟踪日志文件。
    工作中tailf主要跟踪日志文件,默认地输出日志文件的最后10行,然后实时地显示文件的增加内容。与tail -f不同的是,它在没有文件内容写入的时候,不会去访问磁盘文件,也不会更改文件的访问时间。
    参数:-n 指定显示的行数。

    8-cut 从文本中提取一段文字并输出。
    常用参数:
    -c 以字节为单位进行分割 命令: cut -c 3-8
    -d 自定义分隔符,默认是以Tab为分隔符。
    -f 与-d一起使用,指定显示那个区域。
    -N 第N个字节,字符或字段。
    N- 从第N个字节、字符或字段开始直至行尾。
    N-M 从第N到第M(含第M)个字节、字符、字段。
    -M 从第1到第M(含第M)个字节、字符、字段。
    基础例子1:[root@honey ~]# echo weareafamily|cut -c 7-12
    family
    基础例子2:[root@honey ~]# echo weareafamily|cut -c -4,4-
    weareafamily
    基础例子2:
    [root@honey ~]# head -3 /etc/passwd
    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@honey ~]# head -3 /etc/passwd|cut -d “:” -f 1 (-d : 指定:为分隔符,-f 1 指定分割的 第1列 )
    root
    bin
    daemon

    9-sort 文本排序
    常用参数:
    -n 依照数值的大小进行排序。
    -r 倒序排序。
    -t 指定分隔符。
    -k 按指定区间排序。
    -b 忽略每行开头存在的空格字符。
    -u 去除重复行。
    [root@honey test]# cat >>a.txt<<#

    10.0.0.3
    10.0.0.3
    10.0.0.1
    10.0.0.9
    10.0.0.6
    #
    [root@honey test]# sort a.txt
    10.0.0.1
    10.0.0.3
    10.0.0.3
    10.0.0.6
    10.0.0.9
    [root@honey test]# sort -ur a.txt
    10.0.0.9
    10.0.0.6
    10.0.0.3
    10.0.0.1
    [root@honey test]# cat >>a.txt<<#
    10.0.1.2 F
    10.0.2.3 G
    10.0.0.4 F
    10.0.2.9 S
    10.0.0.5 A
    #
    [root@honey test]# sort -t ” ” -k2 a.txt
    10.0.0.1
    10.0.0.3
    10.0.0.3
    10.0.0.6
    10.0.0.9
    10.0.0.5 A
    10.0.0.4 F
    10.0.1.2 F
    10.0.2.3 G
    10.0.2.9 S
    [root@honey test]# sort -ut ” ” -k2 a.txt 以第二 列排序去除重复行结果,注意混淆。
    10.0.0.3
    10.0.0.5 A
    10.0.1.2 F
    10.0.2.3 G
    10.0.2.9 S

    10-uniq 去除重复行
    常用参数:-c 去除重复行,并计算每行出现的次数。
    -d 只显示重复的行。
    -u 只显示唯一的行。
    [root@honey test]# sort a.txt |uniq -c
    1 10.0.0.1
    2 10.0.0.3
    1 10.0.0.4 F
    1 10.0.0.5 A
    1 10.0.0.6
    1 10.0.0.9
    1 10.0.1.2 F
    1 10.0.2.3 G
    1 10.0.2.9 S
    11-wc 统计文件的行数,单词数或字节数。
    常用参数:-l 统计行数。
    -m 统计字符数。
    -L 打印最长行的长度。
    -c 打印字节数。
    [root@honey test]# wc -l a.txt
    10 a.txt
    [root@honey test]# echo 244dfjfsjlsgdsggsg >>a.txt
    [root@honey test]# cat a.txt |wc -L
    18

    12-iconv 转换文件的编码格式。
    常用参数:
    -f A 从编码A转换。
    -t B 转换成编码B。
    -I 显示系统支持的编码。
    -o 将输出输入到指定文件。
    linux系统是UTF-8b编码;windows系统是GB2312编码,win编辑的中文字符到linux系统中会出现乱码,需要下面的转换后使用。
    命令:iconv -f gb2312 -t utf-8 GB2312.txt

    13-dos2unix 将DOS格式文件转换成UNIX格式。
    在win下面编辑的脚本,传到linux上执行会出现不同错误,使用命令cat -A test_win.sh查看不*可见字符,会发现很多”^m$”在结尾,win下面换行是” ”,linux下面的换行“ ”,因此会出错。需要执行dos2unix test_win.sh。

    14-diff 比较两个文件的不同,并输出文件的差异。
    命令:diff file1.txt file2.txt
    15-vimdiff 命令调用vim打开文件,并且以不同的颜色区分文件的差异。
    vimdiff file1.txt file2.txt
    退出需要执行两次:q。

    16-tr 替换或删除字符。
    [root@honey test]# cat a.txt |tr “[A-Z]” “[a-z]”
    10.0.0.3
    10.0.0.3
    10.0.0.1
    10.0.0.9
    10.0.0.6
    10.0.1.2 f
    10.0.2.3 g
    10.0.0.4 f
    10.0.2.9 s
    10.0.0.5 a

    17-tee 多重定向
    常用参数:-a 向文件追加内容,而不是覆盖。
    [root@honey test]# ls
    2018-08-23_yunwei_my1_beijing.jpg 2018-08-23_yunwei_my3_beijing.jpg 2018-08-23_yunwei_my5_beijing.jpg md5a.txt
    2018-08-23_yunwei_my2_beijing.jpg 2018-08-23_yunwei_my4_beijing.jpg a.txt testA.txt
    [root@honey test]# ls|tee -a ls.txt ls.txt 不需要先存在,自动创建。
    2018-08-23_yunwei_my1_beijing.jpg
    2018-08-23_yunwei_my2_beijing.jpg
    2018-08-23_yunwei_my3_beijing.jpg
    2018-08-23_yunwei_my4_beijing.jpg
    2018-08-23_yunwei_my5_beijing.jpg
    a.txt
    md5a.txt
    testA.txt

    18-vim/vi 文本编辑器
    vim三种模式:
    1)普通模式:即打开文本(vim file.txt)的普通模式。这个模式下,不能输入编辑,可以进行删除、粘贴、复制等之类的工作。
    2)编辑模式:按下“i、o、a、r、s”(及其对应的大写)进入,会看到–INSERT–这种提示,操作完成按Esc退到普通模式;
    3)命令模式:在普通模式下面输入“:”,“/”, “?”时光标会自动定位在那一行,在这个模式下,可以执行保存、搜索、替换、显示行号等。

    vim命令操作符:
    普通模式下操作:
    G 将光标移动到文件的最后一行。
    gg 将光标移动到文件的第一行,等价于1gg或1G.
    0 数字0 将光标从所在行的位置移动到当前行的开头。
    $ 从光标所在的位置将光标移动到当前行的结尾。
    n n为数字,为回车键,将光标向下移动n行。
    ngg 移动到第n行。
    /server 从光标位置向下搜索server字符串。
    ?server 从光标位置向上搜索server字符串。
    n 配合/server 从光标位置 向下继续搜索。
    N 配合/server从光标位置向上继续搜索。
    :g/A/s//B/g 把符合A的内容都替换成B.
    :%s/A/B/g 把符合A的内容都替换成B.
    :n1,n2s/A/B/gc n1,n2为数字,在n1,n2行之间用B替换A。
    yy 复制当前行。
    nyy 从当前向下复制n行。
    p 将已复制的粘贴在光标的下一行。
    P 将已复制的粘贴在光标的上一行。
    dd 删除光标所在的整行。
    ndd 删除从光标开始向下n行。
    u 撤销上一次的操作。
    x 向后删除字符。
    X 向前删除字符。
    dG 删除当前行至最后一行。
    d1G 删除当前行至第一行。

    进入编辑模式常用命令:
    i 在当前光标所在处插入文字。
    o 在光标的下一行插入文字。
    Esc 退出命令模式。

    命令行模式:
    :wq 保存修改并退出。
    :wq! 强制保存后退出。
    :q! 不保存强制退出。
    :set nu 显示行号。

  • 相关阅读:
    20191224 Spring官方文档(Overview)
    20191224 Spring官方文档(启动)
    20191209 【归档】Linux就该这么学
    20191209 Linux就该这么学(6)
    20191209 Linux就该这么学(5)
    20191209 Linux就该这么学(4)
    20191209 Linux就该这么学(1-3)
    20191128 Spring Boot官方文档学习【目录】
    加密在卷积神经网络上的应用
    Federated Optimization: Distributed Machine Learning for On-Device Intelligence
  • 原文地址:https://www.cnblogs.com/edda/p/13062295.html
Copyright © 2011-2022 走看看