首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用sed从给定文本中打印部分文本

如何使用sed从给定文本中打印部分文本
EN

Stack Overflow用户
提问于 2014-06-10 13:09:09
回答 3查看 61关注 0票数 0

如何使用sed从以下输入文件打印部分文本?

输入数据文件

代码语言:javascript
复制
ABC mobile - ABC, Inc
XYZ123 mobile - XYZ123 company
TD Ameritrade Mobile Trader - TD Ameritrade Mobile, LLC

预期产出

代码语言:javascript
复制
ABC, Inc
XYZ123 Company
TD Ameritrade Mobile, LLC
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-10 13:12:39

只要删除所有的东西,直到一个破折号和空格:

代码语言:javascript
复制
sed 's/.*- //'
票数 4
EN

Stack Overflow用户

发布于 2014-06-10 13:13:04

显然你想从-打印所有东西

为此,您可以使用cut

代码语言:javascript
复制
$ cut -d'-' -f2 file
 ABC, Inc
 XYZ123 company
 TD Ameritrade Mobile, LLC

但它在冲刺之后显示出领先的空间。所以最好选择awk

代码语言:javascript
复制
$ awk -v FS="- " '{print $2}' file
ABC, Inc
XYZ123 company
TD Ameritrade Mobile, LLC

-v FS="- "将字段分隔符设置为- (注意空格),然后{print $2}打印第二个块。

sed

代码语言:javascript
复制
$ sed 's/^[^-]*- //' file
ABC, Inc
XYZ123 company
TD Ameritrade Mobile, LLC

^[^-]*-匹配从行开始(^)到第一个破折号再到空格的所有内容。然后,它用一个空字符串替换它,因此实际上它正在删除直到-的所有内容。

票数 1
EN

Stack Overflow用户

发布于 2014-06-10 13:14:06

使用反向引用:

代码语言:javascript
复制
sed 's/.*-\(.*\)/\1/'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24141850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档