
一条语句搞定,假定你要找到最后一个ABC以及后面的10行,
当然这条语句能够执行的基础是,1log里确实有ABC这个字符串,否则下面一条语句就会出现失败,更好的方法是在脚本中分成两条语句,一条语句判断是否有ABC以及行号,第二条语句是用sed来打印。你可以自己根据下面的命令来搞定,我就不多说了。
sed
-n
"$(grep
-n
ABC
1log
|
tail
-1
|
cut
-d
:
-f
1),+10p"
ABClog
1、首先在shell中,定义一个字符串变量,例:str='bbc123uu789'。
2、使用echo输出变量$str的值,例:#注释:shell中定义变量不需要使用$符号,使用变量的时候需要使用$符号echo $str。
3、使用sed指令,对变量进行处理,例:echo $str|sed 's//&\+/g'#注释:sed是文本流的处理指令,不会对原文件的内容造成破坏,同时sed支持正则表达式,所以使用起来特别强大#经过以上简单处理之后,字符之间被+符号分隔开来了。
4、sed指令本身并不会原文本造成破坏,所以,再次输出变量$str,值并未改变。
5、使用空格对字符进行分隔,只需要指定sed语法种的符号即可,例:echo $str|sed 's//& /g'#注释:掌握了这个,想使用什么符号分隔都可以,在&符号后指定就可以了。
6、扩展一下,按照三个字符一组,对字符串进行分隔,例:echo $str|sed 's//& /g'。
原文件:
现在要在第二行即“bbbb”行的下面添加一行,内容为“xiaowu”
如果要加两行“xiaowu”可以用一下语句,注意用“\n”换行
如果要在第二行即“bbbb”行的上添加一行,内容为“xiaowu”,可以把参数“a”换成“i”
以上文件中只有一行匹配,如果文件中有两行或者多行匹配,结果有是如何呢?
由结果可知,每个匹配行的下一行都会被添加“xiaowu”
那么如果指向在第二个“bbbb”的下一行添加内容“xiaowu”,该如何 *** 作呢?
可以考虑先获取第二个“bbbb”行的行号,然后根据行号在此行的下一行添加“xiaowu”
获取第二个“bbbb”行的行号的方法:
方法一:
方法二:
由结果可知第二个“bbbb”行的行号为4,然后再在第四行的前或后添加相应的内容:
向指定行的末尾添加指定内容,比如在“ccccc”行的行尾介绍“ eeeee”
原文链接
一条语句搞定,假定你要找到最后一个ABC以及后面的10行,当然这条语句能够执行的基础是,1log里确实有ABC这个字符串,否则下面一条语句就会出现失败,更好的方法是在脚本中分成两条语句,一条语句判断是否有ABC以及行号,第二条语句是用sed来打印。你可以自己根据下面的命令来搞定,我就不多说了。sed-n"$(grep-nABC1log|tail-1|cut-d:-f1),+10p"ABClog
import sys
from lxml import etree
reload(sys)
syssetdefaultencoding("utf8")
import requests
r = requestsget('>
以上就是关于利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容全部的内容,包括:利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容、shell中分割字符串之后怎么取得最后一个东西的值如果可以的话,怎么将分割后的结果保存到一个数组中、SHELL 在指定行的前/后插入指定内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)