0

我的脚本采用 R#TYPE.TXT 形式的文件名(# 是一个数字,TYPE 是两个或三个字符)。我希望我的脚本给我 TYPE。我应该怎么做才能得到它?猜猜我需要使用awk和sed。

我正在使用 /bin/sh (这是一个要求)

4

3 回答 3

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 回答
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 回答
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 回答