linux批量提取文本,关于bash:如何使用sed从字符串中提取多个文本和数字?

本文介绍了如何使用sed命令从文本行中提取特定字段,如姓名、DOB-029和Post-555。通过示例展示了如何编写脚本以按需选择显示的字段。
摘要由CSDN通过智能技术生成

本问题已经有最佳答案,请猛点这里访问。

如何使用" sed"从一行中提取3个或更多单独的文本

我有以下几行:

echo

到目前为止,我可以通过执行以下操作来提取" DOB-029"

sed -n 's/.*\(DOB-[0-9]*\).*/\1/p'

但我没有得到其他文字,例如姓名或职位。

我的预期输出应该是Mike DOB-029 Post-555

已编辑

假设我在文件中有一个列表,我想从整个列表中提取特定的文本/ ID,然后将其保存到.txt文件中

您的预期输出是多少?

我的预期输出应该是Mike DOB-029 Post-555

那最后一个块Male呢? 问题背后的逻辑是什么? 提取分隔的所有内容?

我什么都不想要。 目的是仅显示前三个文字,并用/分隔

使用awk的解决方案:

echo"" | awk -F[/[] '{print $2, $3, $4}'

我们将定界符设置为/或[(-F[/[])。那么我们只需打印分别为2nd, 3rd and 4th fields的字段$2, $3 and $4。

与sed:

echo"" | sed 's/\(^.*\[\)\(.*\)\(\/[^/]*$\)/\2/; s/\// /g'

我最近爱上了.. :-)

如果OP没有为sed请求它,则ID也建议为awk。 具有编程语言功能的脚本语言,根本无法击败它:)

那是个好主意,但是它可能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值