【发布时间】:2021-12-28 07:44:09
【问题描述】:
原始字符串:A/trunk/apple/B/trunk/apple/Z/trunk/orange/citrus/Q/trunk/melon/juice/venti/straw/
目录的深度会有所不同,但 /trunk 部分将始终保持不变。 /trunk 前面的单个字符是该行的指示符。
想要的输出:
A /trunk/apple
B /trunk/apple
Z /trunk/orange
Q /trunk/melon/juice/venti/straw
***编辑
对不起,我犯了一个错误,在原始字符串的每个路径的末尾添加了一个斜杠,这使输出变得混乱。原始字符串的大写字母前面没有斜线,但我会保留它。
我的尝试:
echo $str1 | sed 's/\(.\/trunk\)/\n\1/g'
我觉得它应该可以工作,但它没有。
【问题讨论】:
-
您的问题未明确说明。请清楚地解释您如何定义所需输出的第一个和第二个字段。它是基于字母大小写吗?关于斜线的数量?其他?请注意,您展示的解决方案不会满足您的要求:它不会删除前 2 个输出行的尾部斜杠,而是添加一个空的第一个输出行。请修复它,或者解释它不是您想要的,或者更改您想要的输出示例。请通过编辑您的问题来做到这一点,而不是在 cmets 中。
-
@RenaudPacalet 编辑了问题
-
@Lunartist 第三个字符串的输出应该是
Z /trunk/orange/citrus吧? -
@Lunartist,您最初的问题是其中有一个很好的尝试代码。在编辑时它已经消失了,所以我已经阅读了它,努力(尝试过的代码)使一个问题成为一个好问题,并从关闭的问题中保存。因此,请在这个很棒的论坛上继续分享和学习。