[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!强制保存并退出

内容如下:

dlf test
dlfthink
 
www.baidu.com
TEST 123
Dlf's lemon
grep Grep
abc
abc123abc
123dlf123
[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
年龄:18
身高:178

姓名:测试2
年龄:23
身高:188

姓名:测试3
年龄:21
身高: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!强制保存并退出

内容如下

     入门小站

     rumenz

     ping

     入门

用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个字节以外的内容。

head -c 5 input.txt    # 5 bytes  
head -c -5b input.txt   # 5*512 
head -c 5k input.txt    # 5*1024
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 标识符表示全局查找替换

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沫洺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值