假设文件 text.txt 内容如下:
......
xxxxxxxxxxxxxx
yyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzz
start_mark xxxxxx
10 aaaaa bbbb cccc
20 aaaaa bbbb cccc
30 aaaaa bbbb cccc
40 aaaaa bbbb cccc
......
yyyyy end_mark
......
现要截取 start_mark 所在行与 end_mark 所在行之间的文本。注意,最终截取的文本不包括 start_mark 行和 end_mark 行。
可以使用如下 sed 命令:
sed -n '/^start_mark/,/end_mark$/p' text.txt | grep -Ev '(^start_mark|end_mark$)' | cut -f 1,2
通过上述命令,我们完成了截取一段文本,并且还过滤出了所要列的内容。其结果是得到了如下内容:
10 aaaaa
20 aaaaa
30 aaaaa
40 aaaaa
说明:
sed 的常见用法是:
sed -n '20,30p' text.txt
上述代码可取出 text.txt 中,20 至 30 行之间的内容。但是也可以使用正则来表示行的开始和结束。
当然,也可以使用如下方法来截取文本段,不过下面这种方法没有上面的方法智能:
1. 首先,取出文本中开始文本处的行号。
2. 然后,取出文本中结束文本处的行号。
3. 最后,使用 sed 截取内容。
例如:
cat -n text.txt | grep 'start_mark ' | awk '{print $1}'
cat -n text.txt | grep 'end_mark ' | awk '{print $1}'
sed -n '10, 20p' text.txt
分享到:
相关推荐
linux shell sed 使用详解 整理的很好。很不错的资源。写脚本全靠这个了。
Linux shell 用sed命令在文本的行尾或行首添加字符
shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述shell sed 详述...
shell编程中经常用到sed命令,本文详细介绍了shell常用命令sed详细用法
Shell编程-字符截取命令-sed命令
linux shell命令sed的使用方法
linux shell sed从入门到精通
linux shell Sed学习笔记.相信你看完会明白的
sed匹配成功后,打印所在行的内容是比较简单。但是要输出某行匹配内容,而不是整行内容。
you will understand basic knowledge about sed command of linux shell script.
this materials include some common sed usage, I hope it's helpfull to you.
背景:执行shell命令,抓取shell返回信息中的所需信息,已udhcpc为例获取DNS的地址。 暂不作处理,执行udhcpc。 使用grep过滤掉无用信息,执行 udhcpc | grep “DNS” 使用sed抓取第二行,-n ‘2p’代表第二行,-n...
这个是关于shell中的sed和awk介绍的pdf文件,希望大家喜欢!!!
5.4: 正则表达式 、 sed基本用法 、 sed文本块处理.docx
linux下常用脚本命令集合 : awk sed bash shell Shell范例精解(第4版)
shell编程,sed,awk,grep等教程
Sed命令是linux下的一个非常有用的命令,特别是在shell脚本中经常会使用到他。 熟悉他你会觉得非常有趣哦! 1.sed -n '2'p filename 打印文件的第二行。 2.sed -n '1,3'p filename 打印文件的1到3行 3. sed -n '/...
学习shell时做的笔记,包含sed,awk,sort,uniq的使用
sed很强大的文本操作命令
详细介绍了Shell编程中字符截取命令-cut printf awk sed。每一步都有详细操作演示,并附有截图。适合初学者。