1

キーワードを見つけた後、特定のポイントを超えてパス名をトリミングしたい。今朝は空白を描いています。

/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java

キーワードJavaを見つけて、それ以降のパス名(tsupdater)を保存し、そのJava部分の後のすべてを切り取りたいと思います。

4

4 に答える 4

3

これがあなたの望むものかどうかはわかりませんが、パス名を次のように2つに分割できます。

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

2番目の部分をファイルに保存しpart2.txtて最初の部分を印刷する場合は、次のようにします。

echo "/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java" | sed 'h;s/.*Java//;wpart2.txt;g;s/Java.*/Java/'

シェルスクリプトを作成している場合:

myvar="/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java"
part1="${myvar%Java*}Java"
part2="${myvar#*Java/}"

これがお役に立てば幸いです=)

于 2012-10-19T14:17:04.613 に答える
1

出力として何が必要かは完全にはわかりませんが(より明確に指定してください)、次のコマンド:

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/
于 2012-10-19T14:07:38.843 に答える
1

必要なものを1つ取ります:

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
于 2012-10-19T14:22:06.123 に答える
0

私が言ったように、私は奇妙な朝を過ごしていましたが、それは私に夜明けをもたらしました.

echo /home/quikq/1.0/dev/Java/TSUpdater/src/TSUpdater.java | sed s/Java.*//g

収量

/home/quikq/1.0/dev

ただし、さまざまな方法で切り刻むための素晴らしいヒントがたくさんあります。本当にありがとう!

于 2012-10-22T16:08:05.827 に答える