3

次のように、ファイル名からファイル拡張子を削除する必要があるスクリプトをbashで作成しようとしています。

original:   something.zip
removed version: something

カットも使えると思っていたのですが、ファイル名にピリオドが複数あるなど、次のような状況になるのではないかと心配です。

something.v2.zip

そうは言っても、テキスト/ファイル名の行から最後のピリオドとその後のテキストを削除するために私ができることについて誰かが何かアドバイスがあるかどうか疑問に思いましたか?助けていただければ幸いです、ありがとう!

4

2 に答える 2

8
 f=file.zip
 echo "${f%.zip}"

 file

'%'はパラメータ修飾子です。つまり、'%'文字(この場合は文字列)の後にある変数の値の右側から削除します.zip。次のようなワイルドカードを使用して、これをより一般的にして、末尾の拡張子を削除できます。

 echo "${f%.*}"

 file
于 2012-11-12T03:24:28.783 に答える
2

最後の期間から最後までを削除する場合は、次のことを試してください。

$ f=some.thing.zip
$ echo "${f%.*}"
some.thing
于 2012-11-12T03:27:17.280 に答える