キーワードを見つけた後、特定のポイントを超えてパス名をトリミングしたい。今朝は空白を描いています。
/home/quikq/1.0/dev/Java/tsupdater/src/tsupdater.java
キーワードJavaを見つけて、それ以降のパス名(tsupdater)を保存し、そのJava
部分の後のすべてを切り取りたいと思います。
これがあなたの望むものかどうかはわかりませんが、パス名を次のように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/}"
これがお役に立てば幸いです=)
出力として何が必要かは完全にはわかりませんが(より明確に指定してください)、次のコマンド:
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/
必要なものを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
私が言ったように、私は奇妙な朝を過ごしていましたが、それは私に夜明けをもたらしました.
echo /home/quikq/1.0/dev/Java/TSUpdater/src/TSUpdater.java | sed s/Java.*//g
収量
/home/quikq/1.0/dev
ただし、さまざまな方法で切り刻むための素晴らしいヒントがたくさんあります。本当にありがとう!