文字列から単語で始まる部分文字列を抽出する方法

文字列から単語で始まる部分文字列を抽出する方法

私はbashスクリプトを書いていますが、時々これが起こります。 $path="things useless things... path/another/files1/useful/path/here"

そのため、「files1」の前のすべての単語とテキストを削除し、files1の後ろの部分(含む)を取得しようとします。

この例では、次のようになります。files1/useful/path/here

それ以降の部品は入手できますが、ファイル1は含まれません。

どうやってこれを達成できますか?

ベストアンサー1

(ファイルスクリプトの場合)どうですか?

sed -n 's#\(path="\).*/\(files1/[^"]*"\)#\1\2#p' script

または値が変数の内部にある場合:


$ path="things useless things... path/another/files1/useful/path/here"

$ echo "/files1/${path##*/files1/}"

/files1/useful/path/here

おすすめ記事