我想在找到关键字后修剪一个路径名。我今天早上画一个空白。
/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java
我想找到关键字java,将路径名保存在此之外(tsupdater),然后在Java
部分后切断所有内容。
我不知道这是否是您想要的,但是您可以将路径名分为二,
echo "/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java" | sed 'h;s/.*Java//p;g;s/Java.*/Java/'
输出:
/tsupdater/src/tsupdater.java
/home/quikq/1.0/dev/Java
如果您想将第二部分保存到文件part2.txt
并打印第一部分,则可以:
echo "/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java" | sed 'h;s/.*Java//;wpart2.txt;g;s/Java.*/Java/'
如果您正在写一个shell脚本:
myvar="/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java"
part1="${myvar%Java*}Java"
part2="${myvar#*Java/}"
希望这有帮助=)
以您需要的一个:
kent$ echo "/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java"|sed -r 's#(.*Java/[^/]*).*#1#g'
/home/quikq/1.0/dev/Java/tsupdater
kent$ echo "/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java"|sed -r 's#(.*Java).*#1#g'
/home/quikq/1.0/dev/Java
kent$ echo "/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java"|sed -r 's#.*Java/([^/]*).*#1#g'
tsupdater
我不完全确定您想要的内容(请更清楚地指定),但是此命令:
echo "/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java" | sed 's/.*Java//'
导致:
/tsupdater/src/tsupdater.java
如果您想要前一个部分,则此命令:
echo "/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java" | sed 's/Java.*//'
导致:
/home/quikq/1.0/dev/
就像我说的那样,我的早晨很奇怪,但它在我身上突然出现。
echo/home/quikq/1.0/dev/java/tsupdater/src/tsupdater.java |SED S/Java。*//g
产生
/home/quikq/1.0/dev
这里有很多很棒的技巧,用于将其切碎。谢谢一堆!