をトリム、親切に「私はUNIXシェルスクリプトに次のパスをトリミングする必要があるソースファイルのパス
- 入力 -
/vobs/java/server/forms/data/Branch/semanticexplorer.pls
- 出力 -
server/forms/data/Branch/semanticexplorer.pls
をトリム、親切に「私はUNIXシェルスクリプトに次のパスをトリミングする必要があるソースファイルのパス
/vobs/java/server/forms/data/Branch/semanticexplorer.pls
server/forms/data/Branch/semanticexplorer.pls
にあなたを提案してくださいトリミングするための一般的な基準を私たちに与えていないので、固定された最初の2つのコンポーネントをチョッピングしています。
このようなメカニズムは、プロセスを実行する回避:
input=/vobs/java/server/forms/data/Branch/semanticexplorer.pls
output=${input#/vobs/java/}
バッシュ、トリミング、より一般的なパスのために有用であろういくつかの拡張機能を有しています。 Kornシェルは${var#prefix}
表記をサポートしています。
ます。また、使用することができます。
prefix=/vobs/java/
input=/vobs/java/server/forms/data/Branch/semanticexplorer.pls
output=${input#$prefix}
これは、あなたは接頭辞を変更し、まだそれを削除することができます。ほとんどのシェルで
、強引なアプローチがある:
bashでinput=/vobs/java/server/forms/data/Branch/semanticexplorer.pls
output=$(echo $input | sed "s%/vobs/java/%%")
:
input=/vobs/java/server/forms/data/Branch/semanticexplorer.pls
output=$(sed "s%/vobs/java/%%" <<< $input)
echo $pathname | sed -E 's/\/([^/]*\/){2}//'
は常に同じディレクトリ階層/ VOBS/javaのですか、それは違うのでしょうか? – roundrobin