修剪路径名超过关键字(awk,sed,?)



我想在找到关键字后修剪一个路径名。我今天早上画一个空白。

/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

这里有很多很棒的技巧,用于将其切碎。谢谢一堆!

相关内容

  • 没有找到相关文章