bashで特定の部分文字列パターンと同じ変数を設定するには?

bashで特定の部分文字列パターンと同じ変数を設定するには?

cse常に3〜5文字で始まる文字列の部分文字列と同じ変数を設定しようとしています。

たとえば、入力文字列が次のような場合

http://website.com/class/cse111/homework2/test.html

ただ抽出したいのですが

cse111

この文字列から。

頑張りました

coursenum=$(grep -o '[^cse]...')

しかし、うまくいきません。この問題を解決する方法を知っている人はいますか?

ありがとう、

ベストアンサー1

正規表現が間違っています。grep -Eo 'cse[^/]{3,5}'動作します。

  • cse文字通り文字列一致
  • [^/]{3,5}次の3〜5個の存在しない文字と一致します。/

関連部分が常に区切られた5番目のフィールドである場合は、このフィールドを代わりに/使用できます。cut -d/ -f5

おすすめ記事