我想问一下如何从字符串中获取 TextN ,在TextN之前有不同的长度/模式。停,停,睡?任何例子我都很感激。
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提前谢谢你。
抱歉,**是部分代码标签。
发布于 2018-08-10 15:52:59
如果文字是用双星包裹的,而其他地方不存在.
$ awk -F'**' '{print $2}' file
TextN
TextN
TextN否则,发布一个更有代表性的例子。
也可以使用sed
$ sed -E 's/.*\*\*([^*]+)\*\*.*/\1/' file如果textN中没有空格,如果它是最后一个用空格分隔的字段.
$ awk '{print $NF}' file因为,字符,空格有特殊的含义,你必须仔细地选择你的样本输入.
发布于 2018-08-10 16:27:15
要完成@karakfa的awk示例,请使用sed:sed -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/"
https://stackoverflow.com/questions/51789084
复制相似问题