"" echo $ PWD | s?.*users/[^/]\+/??'とは何ですか?

何ですか

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

おすすめ記事