首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用sed仅打印包含单词的行的一部分

基础概念

sed(Stream Editor)是一种流编辑器,可以对文本文件进行各种操作,如查找、替换、删除和打印文本。它逐行处理文件内容,并根据指定的命令对每一行进行操作。

相关优势

  • 灵活性sed 提供了丰富的命令和选项,可以进行复杂的文本处理。
  • 效率sed 在处理大型文件时表现出色,因为它逐行处理文件,而不是一次性加载整个文件。
  • 脚本支持sed 命令可以轻松地集成到脚本中,实现自动化处理。

类型

sed 的命令类型主要包括:

  • s:替换命令,用于查找并替换文本中的特定模式。
  • d:删除命令,用于删除匹配特定模式的行。
  • p:打印命令,用于打印匹配特定模式的行。

应用场景

  • 文本文件过滤:根据特定条件过滤文件内容。
  • 数据清洗:清理和格式化数据文件。
  • 日志分析:从日志文件中提取特定信息。

示例问题及解决方案

假设我们有一个文本文件 example.txt,内容如下:

代码语言:txt
复制
apple banana
orange apple
grape pineapple
apple mango

我们希望仅打印包含单词 "apple" 的行的第一部分(即第一个单词)。

解决方案

使用以下 sed 命令:

代码语言:txt
复制
sed -n '/apple/ s/\([^ ]*\).*/\1/p' example.txt

解释

  • -n:抑制默认的打印行为,只打印由 p 命令指定的行。
  • /apple/:查找包含 "apple" 的行。
  • s/\([^ ]*\).*/\1/p
    • \([^ ]*\):捕获第一个单词(即第一个空格之前的所有字符)。
    • .*:匹配剩余的行内容。
    • \1:替换整行为捕获的第一个单词。
    • p:打印替换后的行。

输出

代码语言:txt
复制
apple
orange
apple

参考链接

通过上述命令和解释,你可以使用 sed 仅打印包含特定单词的行的第一部分。如果你遇到任何问题或需要进一步的帮助,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Sed..

    \< # 匹配单词开始,如:/\<love/匹配包含以love开头单词。 \> # 匹配单词结束,如/love\>/匹配包含以love结尾单词。...sed用法实例 替换操作:s命令 替换文本中字符串: sed 's/book/books/' file -n选项 和 p命令 一起使用表示只打印那些发生替换sed -n ‘s/test/TEST...,使用 [&] 替换它,& 对应于之前所匹配到单词: echo this is a test line | sed 's/\w\+/[&]/g' [this] [is] [a] [test] [line...组合多个表达式 sed '表达式' | sed '表达式' 等价于: sed '表达式; 表达式' 引用 sed表达式可以使用单引号来引用,但是如果表达式内部包含变量字符串,就需要使用双引号。...: sed -n '/test/,/check/p' file 打印从第5开始到第一个包含以test开始之间所有sed -n '5,/^test/p' file 对于模板test和west

    1.6K20

    linux中sed命令总结

    \< # 匹配单词开始,如:/\<love/匹配包含以love开头单词。 \> # 匹配单词结束,如/love\>/匹配包含以love结尾单词。...sed用法实例 替换操作:s命令 替换文本中字符串: sed 's/book/books/' file -n选项 和 p命令 一起使用表示只打印那些发生替换sed -n s/test/TEST...\w+ 匹配每一个单词使用 [&] 替换它,& 对应于之前所匹配到单词: echo this is a test line | sed 's/\w\+/[&]/g' [this] [is] [a]...'表达式' | sed '表达式' 等价于: sed '表达式; 表达式' 引用 sed表达式可以使用单引号来引用,但是如果表达式内部包含变量字符串,就需要使用双引号。...: sed -n '/test/,/check/p' file 打印从第5开始到第一个包含以test开始之间所有sed -n '5,/^test/p' file 对于模板test和west

    3.2K20

    Linux生产环境上,最常用一套“Sed“技巧

    不是一家人不进一家门,本文不是为你写。 一个简单入门 ? 如图,一个简单sed命令包含三个主要部分:参数、范围、操作。要操作文件,可以直接挂在命令行最后。...sed -n '2p' /etc/group 表示打印group文件中第二。...下面这条命令,将会把文件中每一使用引号包围起来。 sed 's/.*/"&"/' file flag 参数 这些参数可以单个使用,也可以使用多个,介绍最常用。...g 默认只匹配中第一次出现内容,加上g,就可以全文替换了。常用。 p 当使用了-n参数,p将输出匹配行内容。 w 和上面的w模式类似,但是它仅仅输出有变换。...输出长度不小于50个字符 sed -n '/^.{50}/p' 统计文件中有每个单词出现了多少次 sed 's/ /\n/g' file | sort | uniq -c 查找目录中py文件,删掉所有级注释

    92130

    【linux命令讲解大全】081.sed:功能强大流式文本编辑器

    N # 追加下一个输入行到模板块后面并在二者间嵌入一个新,改变当前行号码。 p # 打印模板块。 P # (大写) 打印模板块第一。 q # 退出Sed。...< # 匹配单词开始,如:/<love/匹配包含以love开头单词。 > # 匹配单词结束,如/love>/匹配包含以love结尾单词。...sed用法实例 替换操作:s命令 替换文本中字符串: sed 's/book/books/' file -n选项 和 p命令 一起使用表示只打印那些发生替换sed -n ‘s/test/TEST...,使用 [&] 替换它,& 对应于之前所匹配到单词: echo this is a test line | sed 's/\w\+/[&]/g' [this] [is] [a] [test] [line.../nologin 选定范围:,(逗号) 所有在模板test和check所确定范围内行都被打印sed -n '/test/,/check/p' file 打印从第5开始到第一个包含以test

    23810

    Linux常用命令

    () 返回 字符长度 if(0 ~ “aa”) print 0 如果这一包含 “aa”, 就打印这一内容 if(1 ~ “aa”) print 0 如果第一段 包含 “aa”, 就打印这一内容...if(1 == “lisi”) print 0 如果第一段 等于 “lisi”, 就打印这一内容 sed 可选项 目标文件 对目标文件 进行 过滤查询 或 替换 p 打印 $ 代表 最后一 -n...显示处理后结果 -e 根据表达式 进行处理 sed -n -e ‘1,5p’ 1.txt 列出 1.txt 1~5 数据 sed -n -e ‘1,$p’ 1.txt 列出01.txt所有数据...nl 01.txt | sed -e '1,3d’ 保留1.txt中前4数据,并显示行号 nl 01.txt | sed -e '5,$d’ 在01.txt第二后添加aaaaa,并显示行号 nl...txt nl passwd 查看数据 从1.txt中提出数据,匹配出包含root内容,再把nologin替换为itheima nl 01.txt | grep ‘root’ | sed -e 's/nologin

    1.4K30

    Linux命令篇(二):文档编辑部分

    -v:反向查找,只打印不匹配。 -n:显示匹配行号。 -r:递归查找子目录中文件。 -l:只打印匹配文件名。 -c:只打印匹配行数。...| grep -c linux 在当前目录中,查找后缀有info字样文件中包含 linux字符串文件,并打印出该字符串 grep linux *info 以递归方式在/home/sk/test...,基本语法格式如下: rgerp [参数选项] [文件] 举例说明 在当前目录下查找句子中包含"linux"字符串文件 rgrep linux * 3、sed 命令 sed命令主要是利用脚本来处理文本文件...后面通常不接任何东东 i :插入, i 后面可以接字串,而这些字串会在新出现(目前上一) p :打印,亦即将某个选择数据印出。...python linux shell script 在test.txt文件第三后面插入一“this is c++ ” sed -e 3a\this is c++ test.txt 使用如上

    12010

    Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

    )是一种强大文本搜索工具,它能使用正则表达式搜索文本,并把匹配打印出来。...提供了后缀名(.bak)则备份文件 -l N/ --line-length=N 为l命令指定换行长度n -n/--quiet/——silent 不自动打印模式空间内容,显示脚本处理后结果,...\< 匹配单词开始,如:/\<love/匹配包含以love开头单词。 \> 匹配单词结束,如/love\>/匹配包含以love结尾单词。...打印输入文件指定行内容 需用到-n参数:不自动打印, 需用到p命令:打印模块 $ sed -n '2p' 123.txt #注意一定要加-n,否则会默认自动打印所有内容 $ sed....txt里第一条包含sh及以下到末尾所有 $ sed -n '/sh/ ,$p' 123.txt 逆序输出文本内容 需用到命令:!

    9.3K21

    linux中最为常用三大文本(grep,sed,awk)处理工具

    sed -n ‘/hani/p’ test [只打印包含匹配文本模式] root@ubuntu-admin-a1:/home/sedTest# sed -n '/hani/p' test hello...反选,打印没有匹配到 hani sed -n ‘s/old/new/gp’ test 只打印匹配替换 6.7 sed w 将所选写入文件 w 命令用来将文本中指定内容写入文件中 格式如下...-n :显示行号   -w :被匹配文本只能是单词,而不能是单词一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker   -c :显示总共有多少被匹配到了...grep linuxtechi /etc/passwd /etc/shadow /etc/gshadow -例3 使用-l参数列出包含指定模式文件文件名。...-n参数,在文件中查找指定模式并显示匹配行号 grep -n root /etc/passwd /etc/shadow -例5 使用-v参数输出不包含指定模式 输出/etc/passwd文件中所有不含单词

    6K10

    Linux 三剑客 grep、sed、awk

    grepgrep 全称为 "global regular expression print",意味着它可以通过正则表达式来搜索文本,并把匹配打印出来。...grep 命令常用选项及含义选项含义-c列出文件中包含匹配模式行数-i忽略模式中字母大小写-l列出包含匹配文件名-n在每一最前面列出行号-v列出不匹配模式-w匹配整个单词,忽略部分匹配示例...它可以根据脚本命令来处理文本文件中数据。这些命令可以直接在命令行中输入,也可以存储在一个脚本文件中。sed 使用方式每次读取一内容;根据提供规则命令匹配并修改数据。...awk 打印出日志中每行第一个字段(一般是 IP 地址)。...grep 用于搜索文本,sed 用于编辑文本,而 awk 则用于更复杂文本分析和处理。通过组合使用 grep、sed 和 awk,我们可以轻松地处理复杂文本数据,有效提高我们工作效率。

    13710

    Linux好用管道命令

    实例 1)在当前目录中,查找后缀有 file 字样文件中包含 test 字符串文件,并打印出该字符串。...例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"文件,并打印出该字符串所在行内容,使用命令为: grep -r update /etc/...前面各个例子是查找并打印出符合条件,通过"-v"参数可以打印出不符合条件内容。...查找文件名中包含 test 文件中不包含test ,此时,使用命令为: grep -v test *test* 结果如下所示: $ grep-v test* #查找文件名中包含test 文件中不包含...-d :自定义分隔符,默认为制表符,与-f一起使用。 -f :根据-d分隔符将一段信息分成数段,使用-f表示取出第几段意思。 -n :取消分割多字节字符。和 -b 标志一起使用

    9.3K20

    管道相关命令

    单词数 wc -l 行数 uniq 命令用于检查及删除文本文件中重复出现,一般与 sort 命令结合使用 tee 命令结果 | tee 文件1 文件2 文件3 通过 tee...返回 字符长度 if(0 ~ “aa”) print 0 如果这一包含 “aa”, 就打印这一内容 if(1 ~ “aa”) print 0 如果第一段 包含 “aa”, 就打印这一内容 if(1...== “lisi”) print 0 如果第一段 等于 “lisi”, 就打印这一内容 awk ‘BEGIN{初始化操作}{每行都执行} END{结束时 操作}’ 文件名 BEGIN{ 这里面放是执行前语句...} {这里面放是处理每一时要执行语 句} END {这里面放是处理完所有的后要 执行语句 } sed sed 可选项 目标文件 对目标文件 进行 过滤查询 或 替换 p 打印 $ ?...代表 后一 -n ? 显示处理后结果 -e 根据表达式 进行处理 -i 替换原有文件内容 d 删除指定内容 i 目标前面 插入内容 a 目标后面 追加内容

    1.6K30

    大数据开发工程师基本功修炼之Linux学习笔记(三)

    字节数、单词数、行数. 4 uniq uniq 命令用于检查及删除文本文件中重复出现,一般与 sort 命令结合使用。...4.1 目标 uniq 命令用于检查及删除文本文件中重复出现,一般与 sort 命令结合使用。...“aa”, 就打印这一内容 if($1 ~ “aa”) print $0 如果**第一段 **包含 “aa”, 就打印这一内容 if($1 == “lisi”) print $0 如果第一段 等于...进行 过滤查询 或 替换 可选参数 可选项 英文 含义 p print 打印 $ 代表 最后一 -n 显示处理后结果 -e expression 根据表达式 进行处理 练习1 列出 1...练习4: 查找01.txt中包含root 答案: sed -n -e '/root/p' 1.txt 练习5 列出01.txt中包含root内容,root不区分大小写,并显示行号 可选项

    45430

    常见linux命令介绍-sed

    前言 sed(Stream EDitor,流编辑器)是文本处理中常用工具,能够使用正则表达式,功能不可小觑。...’ filename 执行脚本中sed处理命令 常用参数 -n :只打印模式匹配 -e :直接在命令行模式上进行sed动作编辑,此为默认选项 -f :将sed动作写在一个文件内,用–f filename...执行filename内sed动作 -r : 在脚本中使用扩展正则表达式。...n 读取下一个输入行,用下一个命令处理新而不是用第一个命令。 N 追加下一个输入行到模板块后面并在二者间嵌入一个新,改变当前行号码。 p 打印模板块。 P(大写) 打印模板块第一。...\< 匹配单词开始,如:/\<love/匹配包含以love开头单词。 \> 匹配单词结束,如/love\>/匹配包含以love结尾单词

    1.6K10

    Linux基础Day03

    字节数、单词数、行数. 4 uniq uniq 命令用于检查及删除文本文件中重复出现,一般与 sort 命令结合使用。...4.1 目标 uniq 命令用于检查及删除文本文件中重复出现,一般与 sort 命令结合使用。...“aa”, 就打印这一内容 if($1 ~ “aa”) print $0 如果**第一段 **包含 “aa”, 就打印这一内容 if($1 == “lisi”) print $0 如果第一段 等于...进行 过滤查询 或 替换 可选参数 可选项 英文 含义 p print 打印 $ 代表 最后一 -n 显示处理后结果 -e expression 根据表达式 进行处理 练习1 列出 1...练习4: 查找01.txt中包含root 答案: sed -n -e '/root/p' 1.txt 练习5 列出01.txt中包含root内容,root不区分大小写,并显示行号 可选项

    56920
    领券