相关疑难解决方法(0)

如何使用sed从字符串中提取文本?

我的示例字符串如下:

This is 02G05 a test string 20-Jul-2012
Run Code Online (Sandbox Code Playgroud)

现在从我想要提取的上面的字符串02G05.为此我用sed尝试了以下正则表达式

$ echo "This is 02G05 a test string 20-Jul-2012" | sed -n '/\d+G\d+/p'
Run Code Online (Sandbox Code Playgroud)

但上面的命令没有打印任何东西,我相信它的原因是它无法匹配我提供给sed的模式.

所以,我的问题是我在这里做错了什么以及如何纠正它.

当我用python尝试上面的字符串和模式时,我得到了我的结果

>>> re.findall(r'\d+G\d+',st)
['02G05']
>>>
Run Code Online (Sandbox Code Playgroud)

regex bash sed

83
推荐指数
4
解决办法
19万
查看次数

使用SED/Perl删除包含数字的字符串部分

我有一个看起来像这样的数据:

AB208804_1 446 576 AB208804_1orf 0
AB208804_20 446 576 AB208804_20orf 0
Run Code Online (Sandbox Code Playgroud)

我想把它们转换成这个:

AB208804 446 576 AB208804orf 0
AB208804 446 576 AB208804orf 0
Run Code Online (Sandbox Code Playgroud)

只需删除第1列和第4列中的_\digit部分即可.

为什么这条线不起作用:

sed 's/_\d+//g'
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法(单线)?

unix linux bash perl sed

4
推荐指数
1
解决办法
2695
查看次数

标签 统计

bash ×2

sed ×2

linux ×1

perl ×1

regex ×1

unix ×1