私のスクリプトは、R#TYPE.TXT という形式のファイル名を取ります (# は数字で、TYPE は 2 文字または 3 文字です)。スクリプトで TYPE を取得したい。取得するにはどうすればよいですか?awk と sed を使用する必要があると思います。
/bin/sh を使用しています (これは必須です)
あなたはawkを使うことができます
$ echo R1CcC.TXT | awk '{sub(/.*[0-9]/,"");sub(".TXT","")}{print}'
CcC
また
$ echo R1CcC.TXT | awk '{gsub(/.*[0-9]|\.TXT$/,"");print}'
CcC
そしてsedが本当にあなたが望むものなら
$ echo R9XXX.TXT | sed 's/R[0-9]\(.*\)\.TXT/\1/'
XXX
これがあなたが探しているものだと思います。
$ echo R3cf.txt | sed "s/.[0-9]\(.*\)\..*/\1/"
cf
txt が常に大文字で、ファイル名が常に R で始まる場合、次のようなことができます。
$ echo R3cf.txt | sed "s/R[0-9]\(.*\)\.TXT/\1/"
シェルのみを使用できます(使用しているシェルによって異なりますbin/sh
:
f=R9ABC.TXT
f="${f%.TXT}" # remove the extension
type="${f#R[0-9]}" # remove the first bit
echo "$type" # ==> ABC