最後の区切り文字で文字列を切り捨てる

最後の区切り文字で文字列を切り捨てる

私はこのようなファイル名を持っておりa.b.c.txt、文字列を次に分割したいと思います。

string1=a.b.c
string2=txt

基本的にファイル名と拡張子を分割したいと思います。使ったけどワcutに分けます。最後の区切り文字の文字列を切り取りたいです。a,b,ctxt

誰でも助けることができますか?

答え1

 #For Filename
 echo "a.b.c.txt" | rev | cut -d"." -f2-  | rev
 #For extension
 echo "a.b.c.txt" | rev | cut -d"." -f1  | rev

答え2

これを行うには多くのツールがあります。

あなたが使用するようにcut

$ string1="$(cut -d. -f1-3 <<<'a.b.c.txt')"
$ string2="$(cut -d. -f4 <<<'a.b.c.txt')"
$ echo "$string1"
a.b.c
$ echo "$string2"
txt

パラメータ拡張を使用します(シェルでサポートされている場合)。

$ name='a.b.c.txt'
$ string1="${name%.*}"
$ string2="${name##*.}"
$ echo "$string1"
a.b.c
$ echo "$string2"
txt

答え3

echo "a.b.c.txt" | cut -d. -f1-3

cutこのコマンドは、4.つの要素(a、、、、)を分離して提供します。上記のコマンドは、要素1〜3(含む)を印刷します。bctxt

または:

echo "a.b.c.txt" | cut -d -f-3

上記のコマンドは、要素1〜3(含む)を印刷します。

関連情報