杨磊的博客主站,搜罗全网有用的小资源!

Search trend: frp Linux Python 阀门 炉排 无人深空

Your cart (14)

Please install WooCommerce

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

Thumbnail placeholder
楊蕾 的头像

前言
这几天面试,被问到一道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代表操作的是文件。
1
2
如果是将某个目录中的所有子目录中的所有txt文件中的yyy字符都替换成xxx字符,则需要使用以下命令

sed -i s/yyyy/xxxx/g `grep yyyy -rl –include=”*.txt” ./`
//“括起来的grep命令,表示将grep命令的的结果作为操作文件。
1
2
3、find命令
命令格式

find -name ‘要查找的文件名’ | xargs perl -pi -e ‘s|被替换的字符串|替换后的字符串|g’
1
同样进阶操作时递归 查找替换

find . -type f -name ‘*.html’ | xargs perl -pi -e ‘s|被替换的字符串|替换后的字符串|g’
————————————————
版权声明:本文为CSDN博主「weixin_43312108」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43312108/article/details/88617164


楊蕾 的头像

公司专车送货上门

全年无休,半夜值班

售后无忧,专业团队上门服务

为您提供专业咨询和服务