bash - 在 sed 中仅打印 <start> 和 <end> 之间的匹配模式

标签 bash shell sed

输入-

ajflkajlkaj
ddddddddddd/need/to/print/thiskkkkkkkkkkkk
ahfkjahkfja

需要输出

/need/to/print/this

谷歌搜索和调整我能够通过这样做来提取“这个”-

sed -n 's/^.*\(this\).*$/\1/p' myfile

但似乎无法获得正确的语法来获取从“/need”开始的模式的其余部分。

如果有任何指示/建议,我将不胜感激。

提前致谢。

最佳答案

您需要让我们知道 ddd 和 kkk 的真正含义。假设“this”后面有一些空格,您可以匹配此模式:

sed -n 's/^[^\/]*\(.*\)\s.*$/\1/p' myfile

[^\/]* 表示首先匹配尽可能多的非/字符。

关于bash - 在 sed 中仅打印 <start> 和 <end> 之间的匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13187191/

相关文章:

bash - 使用圆括号而不是大括号定义 bash 函数体

shell - linux shell 日期连接

arrays - SED 匹配/替换 URL 并更新序列化数组计数

javascript - 如何在Python中使用sed?

linux - 在 *.gz 文件上静默 zgrep 结果

linux - Debian下的sox批处理

linux - 对返回状态代码 shell 脚本的使用感到困惑?

linux - 如何根据正则表达式模式将流拆分为 stdout+stderr?

r - 如何通过 shell 从父目录获取 R 文件?

linux - sed命令如何在shell脚本中使用