首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从长度/模式不同的字符串中获取文本

从长度/模式不同的字符串中获取文本
EN

Stack Overflow用户
提问于 2018-08-10 14:50:58
回答 2查看 65关注 0票数 0

我想问一下如何从字符串中获取 TextN ,在TextN之前有不同的长度/模式。停,停,睡?任何例子我都很感激。

代码语言:javascript
复制
2018/08/09-20:45:50.671483-06359-06359-433191088669655042-004- TextN
2018/08/09-20:45:50.668677-06359-06359-002-006-  TextN
2018/08/09-20:45:50.668677-063-063-002-006-  TextN

提前谢谢你。

抱歉,**是部分代码标签。

EN

回答 2

Stack Overflow用户

发布于 2018-08-10 15:52:59

如果文字是用双星包裹的,而其他地方不存在.

代码语言:javascript
复制
$ awk -F'**' '{print $2}' file

TextN
TextN
TextN

否则,发布一个更有代表性的例子。

也可以使用sed

代码语言:javascript
复制
$ sed -E 's/.*\*\*([^*]+)\*\*.*/\1/' file

如果textN中没有空格,如果它是最后一个用空格分隔的字段.

代码语言:javascript
复制
$ awk '{print $NF}' file

因为,字符,空格有特殊的含义,你必须仔细地选择你的样本输入.

票数 1
EN

Stack Overflow用户

发布于 2018-08-10 16:27:15

要完成@karakfa的awk示例,请使用sedsed -i -E "s/.*\*\*([a-zA-Z]+)\*\*/\1/" <your-text-file>

只有当TextN[a-zA-Z]匹配时,上一个示例才能工作。您也可以使用更复杂的东西或添加其他字符。如果你真的不知道会有什么字符:sed -i -E "s/.*\*\*(.+)\*\*/\1/" <your-text-file>

如果您的字符串不在文件中,而是一个环境变量或只是一个变量:echo $line | sed -E "s/.*\*\*(.+)\*\*/\1/"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51789084

复制
相关文章

相似问题

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