• [Linux] 常用命令--文件操作grep/nl/more/less/head tail/set


    ✨✨个人主页:沫洺的主页

    📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏

                             📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏

                             📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏📖Linux专栏

    💖💖如果文章对你有所帮助请留下三连✨✨

    🍓文件操作

    🥭grep

    参考文章: grep命令

    grep [OPTIONS] PATTERN [FILE...]

    • --color=auto 对匹配到的文本着色显示
    • -v 显示不被pattern匹配到的行
    • -i 忽略字符大小写
    • -n 显示匹配的行号
    • -c 统计匹配的行数
    • -o 仅显示匹配到的字符串
    • -q 静默模式,不输出任何信息
    • -A # after, 后#行
    • -B # before, 前#行
    • -C # context, 前后各#行
    • -e 实现多个选项间的逻辑or关系
    • grep –e ‘cat ’ -e ‘dog’ file
    • -w 匹配整个单词

    准备test.txt文件

    vim test.txt

    i开启输入模式 ESC输入:wq!强制保存并退出

    内容如下:

    1. dlf test
    2. dlfthink
    3. www.baidu.com
    4. TEST 123
    5. Dlf's lemon
    6. grep Grep
    7. abc
    8. abc123abc
    9. 123dlf123
    10. [www.baidu.com]

    查看文件

    cat test.txt

    1) grep -i "test" test.txt 搜索出含有“test” 字符串(-i:不区分大小)

    2) grep -i -n "test" test.txt 搜索出含有“test” 字符串,并打印行号

     

    3) grep -i -n --color "test" test.txt 搜索出含有“test” 字符串,并打印行号,关键字“test”颜色标记(centos7系统默认为grep命令配置了别名,所以不使用—color也能显示颜色,openEuler全兼容centos )

     

    4) grep -i -c "test" test.txt,打印“test”字符串(不区分大小写)显示的次数

     

    5) grep -i -o "test" test.txt,打印“test”字符串(不区分大小写),但不打印整行

    准备test2.txt文件

    vim test2.txt

    i开启输入模式 ESC输入:wq!强制保存并退出

    test2.txt文件内容如下:

    1. 姓名:测试1
    2. 年龄:18
    3. 身高:178
    4. 姓名:测试2
    5. 年龄:23
    6. 身高:188
    7. 姓名:测试3
    8. 年龄:21
    9. 身高:165

    6) grep -A1 “18” test2.txt,打印“18”字符串和它下一行的信息

    7) grep -B1 “18” test2.txt,打印“18”字符串和它上一行的信息

    8) grep -C1 “18” test2.txt,打印“18”字符串和它上一行和下一行的信息

    9) grep -w "dlf" test.txt,精确匹配出“dlf”字符串的 

    10) grep -v "dlf" test.txt,匹配出不包含“dlf”字符串的行

     11) grep -e 'abc' -e 'dlf' test.txt,同时显示匹配”abc”或”test”字符串

    🍐nl

    参考文档: Linux之nl命令

    • -b a 无论是否是空行都列出行号
    • -b t 空行不列出行号(默认)。
    • -n ln 行号在显示栏的最左边显示。
    • -n rn 行号在显示栏的最右边显示,不填充0。
    • -n rz 行号在显示栏的最右边显示(默认)。
    • -w 行号显示栏占用的位数,(默认是6位)。
    • -p 在逻辑定界符处不重新开始计算

    准备文件nl.txt

    vim nl.txt

    i开启输入模式 ESC输入:wq!强制保存并退出

    内容如下

    1. 入门小站
    2. rumenz
    3. ping
    4. 入门

    用nl列出nl.txt的行号

    用nl列出nl.txt的行号,包括空行

    行号前面填充0

    行号显示栏占3位,并且填充0

     

    使用定制的编号分隔符

    🍊more

    参考文章: Linux之more命令

    命令格式

    more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]

    more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。

    🍋less

    参考文章: Linux之less命令

    Linux中的less命令主要用来浏览文件内容,与more命令的用法相似,不同于more命令的是,less命令可往回卷动浏览以看过的部分。less的用法比起more更加的有弹性。在more的时候,我们并没有办法向前面翻,只能往后面看,但若使用了less时,就可以使用 [pageup][pagedown]等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

    命令格式

    less [参数] 文件

    🍈head tail

    参考文章: Linux 命令学习(1): head和tail

    head

    head 命令可以将一段文本的开头一部分输出到标准输出。

    head命令既可以处理文本文件也可以处理标准输入。

    处理文本文件:

     

    当有多个文件输入时,head会顺序处理并输出:

    处理标准输入:

     可选参数

    -n: 输出的行数 后面也可以跟负数比如-5 表示除了后5行以外的全部内容。

     

    -c: 输出的字节数 没有默认值,所以后面必须跟数值。可以是负数,表示输出除了后N个字节以外的内容。

    1. head -c 5 input.txt # 5 bytes
    2. head -c -5b input.txt # 5*512
    3. head -c 5k input.txt # 5*1024
    4. head -c 5m input.txt # 5*1048576

    tail

    将一段文本的结尾一部分输出到标准输出,也就是从倒数第N个位置开始输出。

    基本用法

    tail的参数基本用法和head完全一样,在此不作赘述。

    只有一点需要注意,如果要表达从开头数的位置,例如从第N(比如25)行开始输出,要使用加号:

    tail -n +25 nginx.txt
    tail +5c nginx.txt    #从第5个字节开始打印

    常见用法

    tail 有一个常见的用法:用来实时查看一个不断更新的log file。例如后台有一个logfile.txt不断更新,我们可以用下面的命令将更新内容打印在屏幕上:

    -f: 循环读取

    🍇sed修改文件

    参考文章: Linux sed 命令

    Linux sed 命令是利用脚本来处理文本文件。

    sed 可依照脚本的指令来处理、编辑文本文件。

    sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

    在1.txt文件的第四行添加一行,并将结果输出到标准输出,原文不会改变

     将1.txt的内容列出并且列印行号,同时将第 2~3 行删除

    g 标识符表示全局查找替换

  • 相关阅读:
    数据结构之索引查找(分块查找)
    Vue组件
    eNSP - PIM 查看命令
    【DenseNet模型】
    记一次 mac电脑 parallels desktop win10 虚拟机配置rsync文件同步功能(含mac 无法读写ntfs移动硬盘的解决方法)
    52基于MATLAB的希尔伯特Hilbert变换求包络谱
    MacOS M1 lotus 源码编译
    合成孔径雷达干涉测量InSAR数据处理、地形三维重建、形变信息提取、监测等应用
    cf Educational Codeforces Round 133 D. Chip Move
    LeetCode 20.有效的括号
  • 原文地址:https://blog.csdn.net/HeyVIrBbox/article/details/128078359