利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容

利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容,第1张

1、在linux目录/root下建立一个txt文件,内容如下,使用|竖线分割,作为我们的实验数据样本。

2、sed用法、sed-n'xp'datatxt;显示文件X行数据,获取第18行数据,即为sed-n'18p'datatxt。

3、sed-n'开始行,结束行p'datatxt;显示文件X行到Y行的内容:命令:sed-n'10,18p'datatxt。

4、head/tail用法。tail用法:tail经常用来查看文件末尾的数据,在shell中可以获取文本中指定数据行。tail-n-3datatxt获取文件最好3行数据。tail-n+3datatxt获取文件3到最后一行数据。

5、head用法:head经常用来显示文本的前n行数据。head-n10datatxt显示文本请10行数据。

6、tail和head的结合使用:例如获取文本倒数第二行数据,结果如图所示。命令:tail-n2datatxt|head-n1。

7、awk用法、awk在文本处理方面有着强大的功能,配合脚本使用,可以打印指定行和列。awk'NR==18{print}'datatxt。NR指定行号。

你这个是UNIX的shell语句,我给你写出来了:

find -exec grep aaa {} | wc -l

补充:

find/grep/wc是UNIX上常用的命令,每个命令的说明可以在UNIX上用man查看,比如命令“man find”可以查看find命令的详细功能说明,每个参数都解释得非常清楚,还有距离。

在上面的例子中,find用来搜索当前目录、以及所有子目录下的文件,其exec参数说明找到文件要满足后面的命令,也就是里面要有aaa内容,这是grep的功能。如果不要|以及后面的wc,能把所有包含aaa的文件、以及文件中的那一行显示出来,加上wc就只统计总共有多少行。

一条语句搞定,假定你要找到最后一个ABC以及后面的10行, 当然这条语句能够执行的基础是,1log里确实有ABC这个字符串,否则下面一条语句就会出现失败,更好的方法是在脚本中分成两条语句,一条语句判断是否有ABC以及行号

由于对于Linux指令并没有很熟悉,但工作中恰巧需要用一些简单的指令查看日志,日志的体量很大,每次查询出来的结果都很多,但是这样看起来是非常不方便的,如果我想查询比如说匹配“AAAA”,我只想看下包含AAAA的所在行的所有结果的,最前面的10行数据,这是有条件的查询,呃。。。这么个查询语句我也不是很会自己写,百度了一下,充斥着大量匹配行的前后几行数据的这样的查询语句,介绍下这是啥意思,比如说还是想查“AAAA”,这个就是不但显示“AAAA”行并且显示“AAAA”的前后几行。

记录下指令:grep “AAAA” nohup | head -10

以上就是关于利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容全部的内容,包括:利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容、find grep wc 查询一个目录下的文件中包含特定字符的行,以及符合条件的行数、我想获取文件第10行的数据,怎么用grep实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9634979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存