何ですか
echo $PWD | sed 's?.*users/[^/]\+/??'
ここで、PWDはパスです。
/proj/SAM1/users/ssudi/SAm/VELOCE/ML3P8/trunk
このコマンドは正確に何をし、どのようにsed
機能しs?.*users/[^/]\+/??
ますか?
答え1
s?.*users/[^/]\+/??
分析は次のとおりです。
s
命令です置換?
(3つすべて)式です。区切り記号(だから上記の内容もこのように見えるかもしれません:)s@.*users/[^/]\+/@@
。一般的な形式は次のとおりです。s/<match pattern>/<replacement>/<modifiers>
。この場合、この置換には修飾子と置換がないため、最初のパターンで見つかったすべての項目がストリームから削除されます。.*users/[^/]\+/
検索モードです。意味は次のとおりです。.*
これから何があってもusers/
[^/]\+/
これらの後にはそうでないもの\
(少なくとも1つ、おそらくそれ以上)が来て、その後には/
。
users
したがって、ターゲットはサブフォルダから始まり、その後にサブフォルダが続くパスの文字列です。/subfolder/
。
それでは残ったのはこうです。
SAm/VELOCE/ML3P8/trunk
削除された部分は次のとおりです。
/proj/SAM1/users/ssudi/
/proj/SAM1/
前users/
、後ssudi
。