关于Linux下如何查找文件内容以及替换文本内容命令操作

前言

  • 这几天面试,被问到一道Linux基础题,如何打印出文件的前几行,以及如何替换文件文本内容,还有如何查找某个文件并替换相应字段。所以今天抽出时间,系统整理一下相关操作命令。

命令

  • 所需命令关键字如下
  • tail与head
  • cat
  • sed
  • grep
  • find

首先关于如何打印文件前几行,有好几种方法,这里稍微总结一下,举个例子如何打印123456.txt的前5行。

1、tail与head命令

在这里插入图片描述
文件内容如上表,那么如何打印呢,首先比较有人气的命令是tail这个命令,首先直接使用tail这个命令,是默认打印出文件后10行的。
在这里插入图片描述
并且这种显示,如果加上-f就会动态显示末尾10行。那么如何查看我们想要的行数呢?这是后就需要一个使用-n,但是这个是默认从行尾开始记数的,并且,需要我们注意,在-n后面加上正号是意味着从头开始记数,意味着从此行开始显示到行尾的内容,而不是到行头。还有负号加不加无所谓的。输出结果不会改变。如下图
在这里插入图片描述
并且,需要我们注意,在-n后面加上正号是意味着从头开始记数,意味着从此行开始显示到行尾的内容,而不是到行头。
在这里插入图片描述
那么如何实现使用tail命令打印前5行呢?
使用head命令
在这里插入图片描述
其他功能效果类似于tail功能。在此不多加叙述。

2、cat命令

主要用途是显示第几行到第几行的文件内容,核心关键在于管道符“|”
实例
在这里插入图片描述
显示从第8行到第13行(8+5)的内容

在这里插入图片描述
上图显示从第5行(13-8)到第13行的内容

3、sed命令

sed -n ‘5,10p’ filename 这样你就可以只查看文件的第5行到第10行。
并且这个命令也常用于文本内容的替换。
这个命令,主要是用来替换 文本内容的。
首先我们先了解一下如何在文本文件中替换文件内容
在这里插入图片描述
替换命令是
s/文本/要替换的文本/ 然后有几个参数需要注意下,首先关于g代表全局,也就是当前行的所有。在命令末尾添加
%代表全文,在命令前添加。其中也可以实现,从第几行开始替换,命令格式是
:n,%s/文本/要替换的文本/

还有 这个命令进阶版本。

就是通过找文件以实现,文件文本内容改变。
如果是当前目录下的文件则可以直接通过命令

sed -i s/xxx/yyy/g  ./*.txt
//注意这个 -i代表操作的是文件。

如果是将某个目录中的所有子目录中的所有txt文件中的yyy字符都替换成xxx字符,则需要使用以下命令

sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./`
//``括起来的grep命令,表示将grep命令的的结果作为操作文件。

3、find命令
命令格式

find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'

同样进阶操作时递归 查找替换


find . -type f -name '*.html' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'
  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值