ディレクトリツリーの中で最も長いパスを表示する機能を持っています。関数がこれを出力するとしましょう:./.mozilla/firefox/z6upkljn.default/storage/permanent/chrome/idb/2918063365piupsah.files
Unix:文字列を正規表現の区切り文字で切り取る
私がしたいのは、この文字列をユーザー定義の正規表現とマッチさせた後にカットすることです。
たとえば、ユーザーが*de?a*
のような正規表現を入力した場合、唯一の一致はz6upkljn.default
です。そう終わりに、出力はここ./.mozilla/firefox
あろう私はMy_expressionがユーザによって定義された切断用区切り正規表現とあるsed 's/My_expression.*//'
を発見したサンプルコードです。
この入力では$echo /homes/eva/xm/xmikfi00 | sed 's/mik.*//'
が動作します。出力は/homes/eva/xm/x
です。予想通り。
しかし、単純正規表現$echo /homes/eva/xm/xmifki00 | sed 's/mi?.*//'
を入力すると、出力は/homes/eva/xm/xmikfi00
になります。前の例と同じ出力を得る方法を教えてもらえますか?
ご協力いただきありがとうございます。ありがとうございました。
ここで区切りのルールは何ですか? –
区切りはユーザーによって定義され、正規表現を拡張することができます。 – FilipMik
のような_regex:* de?a *、唯一の一致はz6upkljn.default_です。ここのルールは何ですか? –