sed - 保留包含“不同单词列表”的行,如模式
问题描述
如何保持与所有这些单词
toto
OR titi
OR clic
OR匹配的所有行SOMETHING
并删除任何其他行?
如果我这样做,sed '/toto/ p ' file
我无法选择titi
例如。
我正在寻找的是类似于 Perl 正则表达式 as 的东西
^ (word1|word2|word3|andsoon).*
。但是,我需要它,sed
因为它将被集成到更大的sed
脚本中。
目标是使所有行都以word
where word
is any word from a set of words 开头。
解决方案
这里的答案取决于你的主脚本是如何被调用的。假设您有一个包含以下内容的文件:
foo
car
bar
并且您对匹配“foo”和“bar”的行感兴趣,那么您可以执行以下操作:
sed '/foo\|bar/!d'
sed -n '/foo\|bar/!d;p'
sed -n '/foo\|bar/p'
所有这些都将输出:
foo
bar
如果你只是这样做:
sed '/foo\|bar/p'
你实际上复制了这些行。
foo
foo
car
bar
bar
如您所见,根据-n
标志的使用情况会有一些不同的处理。
-n, --quiet, --silent
抑制图案空间的自动打印资源:
man sed
一般来说,我的建议是删除sed
脚本开头不需要的行。
推荐阅读
- tensorflow - 为什么 pytorch 1.5 比 Tensorflow 2.x 慢?
- flutter - 如何选择将图像上传到我的数据库/存储?
- spring-mvc - 从 SBT 部署 Spring MVC
- c++ - LNK2019 未解析的外部符号“int __cdeclexamAvg(void)”
- haskell - Monoid 类型类
- javascript - 如何在 JS/React-Native 中下载完整的 html 页面?
- javascript - 在 React 应用程序中导航到 URL 时,我得到一个 404,但是当我点击指向同一个 URL 的链接时,我得到了正确的页面显示?
- ios - 尝试在 iPhone 上复制文本时应用程序崩溃
- elasticsearch - 使用 Mustache API 解析 Elasticsearch JSON 模板请求
- kubernetes - 是否可以将 curl 安装到 kubernetes pod 中的busybox 中