`
yhz61010
  • 浏览: 564412 次
  • 来自: -
博客专栏
63c13ecc-ef01-31cf-984e-de461c7dfde8
libgdx 游戏开发
浏览量:12295
社区版块
存档分类
最新评论

Shell sed 截取文本段

阅读更多
假设文件 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截取某行某列信息

    背景:执行shell命令,抓取shell返回信息中的所需信息,已udhcpc为例获取DNS的地址。 暂不作处理,执行udhcpc。 使用grep过滤掉无用信息,执行 udhcpc | grep “DNS” 使用sed抓取第二行,-n ‘2p’代表第二行,-n...

    shell字符截取命令之cut命令的实例详解

    总结来说,`cut`命令是Linux Shell中用于文本处理的重要工具,它允许用户方便地从文件中提取特定列的数据。然而,由于其对分隔符的处理方式,它可能不适用于所有类型的文本格式。在遇到复杂的文本结构时,可能需要...

    shell中常见命令与awk,sed的等价命令

    shell提供了丰富的命令来实现各种功能,而`awk`和`sede`则是其中两个非常强大的文本处理工具。本文将详细介绍一系列常用的shell命令及其在`awk`和`sed`中的等价实现方法。 #### 二、等价命令详解 ##### 1. `cat` *...

    shell_txt_to_csv

    在这个 shell script 中,我们首先使用 sed 命令将文本文件处理为临时文件 test.txt。然后,我们使用 awk 命令对数据进行处理和过滤,例如根据条件提取数据、计算统计值等操作。最后,我们使用 awk 命令将处理后的...

    shell设计入门.TXT shell设计入门

    - **文本处理命令**:如`grep`, `cut`, `sort`等用于搜索、截取和排序文本文件的命令。 - **Here Document**:一种特殊的方式,用于将多行文本作为命令的输入。 - **流编辑器`sed`**:能够对文本进行查找、替换和...

    shell从入门到精通

    11. 常用命令与工具:Shell脚本中常用的命令包括文件操作命令(如ls、cp、rm等)、文本处理命令(如cat、grep、sed、awk等)以及查看系统状态的命令等。 总之,掌握Shell编程对于熟悉Linux系统、进行自动化运维、...

    Bash中的超文本机制_Shell_下载.zip

    例如,可以使用`echo`命令打印字符串,使用`printf`进行格式化输出,使用`cut`、`awk`或`sed`进行文本截取和替换。这些工具使得Bash能够处理和解析复杂的数据结构,比如HTML代码或者JSON格式的数据。 Bash也支持...

    Shell 入门实战到精通

    Shell 函数是指在 Shell 中可以重复使用的一段代码。 Shell 函数可以用于实现代码重用和模块化编程。 Shell 案例实战 Shell 案例实战包括 Nginx 服务启动脚本、系统初始化脚本等实际应用场景。 本文详细介绍了...

    Shell 脚本编程实战100例.pdf

    10. 正则表达式和文本处理工具:通过“基础正规表示法字符汇总”、“使用sed工具的使用”、“文件比对工具diff”等实例,可以了解到如何使用正则表达式进行文本匹配和处理,以及sed、awk这类文本处理工具的强大功能...

    shell系列工具,不同版本以及不同工具

    `find`帮助在文件系统中查找文件,`sort`和`uniq`用于排序和删除重复行,`cut`和`paste`用于截取和合并文本列。还有`tar`用于创建和管理归档文件,`gzip`和`bzip2`用于文件压缩,`unzip`和`rar`用于解压不同格式的...

    shell面试题大全

    sed 用于处理文本流,而 cut 用于截取文本中的某一列。命令 `sed –n ‘25p’ /web.log | cut –d “ ” –f3` 将 /web.log 文件的 25 行输出,然后使用 cut 命令截取第三列的内容。 3. 删除每个临时文件的最初三行...

    shell学习日志总结

    通过以上内容,我们可以看到Shell脚本、Awk和Sed在处理文本数据时的强大功能和灵活性。它们不仅可以帮助我们进行基本的数据检索和格式化,还可以实现复杂的文本分析和数据转换任务。掌握这些工具,对于任何需要频繁...

    Shell从入门到工作几百页笔记.pdf

    例如,学会如何利用`find`、`grep`和`sed`等工具配合Shell脚本进行文件搜索、内容过滤和文本替换,这些都是运维工作中不可或缺的技能。 总的来说,《Shell从入门到精通》笔记是针对运维工程师、开发工程师以及Linux...

    linux shell

    7. **awk和sed工具**:这两个强大的文本处理工具常在Shell脚本中使用。awk擅长数据分析,可以进行模式匹配、字段提取、数据转换等;sed则擅长流编辑,常用于文本替换、删除、插入等操作。 8. **正则表达式**:作为...

    Shell 設計入門,很详细的教学笔记

    正则表达式是一种强大的文本匹配模式,包含`.`、`^`、`$`、`[]`、`*`、`\{...\}`、`\(...\)`等特殊字符,它们在`sed`和`awk`等工具中有着广泛的应用。 6. **命令处理工具** `sed`和`awk`是两个强大的文本处理工具...

    Shell 编程从入门到精通绝版收藏

    Shell文本处理三剑客,即grep、sed和awk是Shell编程中非常强大的文本处理工具,这些章节会教会读者如何利用这些工具完成复杂的文本搜索、替换、提取和格式化工作。 标准输入、输出和错误章节将介绍Shell中的标准...

    Shell脚本-珍藏版

    文本处理在Shell脚本中占有重要地位,通常涉及grep、sed和awk这三个强大的文本处理工具,分别对应不同的处理需求。这些工具提供了匹配打印、删除、替换、多重编辑和模式空间操作等众多功能。例如sed中的p(打印)、d...

    shell 批量处理 字符串指令行

    总的来说,shell批量处理字符串指令行是系统管理员和开发者日常工作中不可或缺的技能,通过熟练掌握这些命令,可以有效地自动化处理各种文本数据。不过,由于原始描述没有提供具体细节,以上内容是基于一般性假设和...

Global site tag (gtag.js) - Google Analytics