0

私のスクリプトは、R#TYPE.TXT という形式のファイル名を取ります (# は数字で、TYPE は 2 文字または 3 文字です)。スクリプトで TYPE を取得したい。取得するにはどうすればよいですか?awk と sed を使用する必要があると思います。

/bin/sh を使用しています (これは必須です)

4

3 に答える 3

1

あなたは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
于 2010-01-04T14:34:55.483 に答える
1

これがあなたが探しているものだと思います。

$ echo R3cf.txt | sed "s/.[0-9]\(.*\)\..*/\1/"

cf

txt が常に大文字で、ファイル名が常に R で始まる場合、次のようなことができます。

$ echo R3cf.txt | sed "s/R[0-9]\(.*\)\.TXT/\1/"
于 2010-01-04T14:16:07.440 に答える
0

シェルのみを使用できます(使用しているシェルによって異なりますbin/sh

f=R9ABC.TXT
f="${f%.TXT}"       # remove the extension
type="${f#R[0-9]}"  # remove the first bit
echo "$type"        # ==> ABC
于 2010-01-04T15:44:20.497 に答える