我的脚本采用 R#TYPE.TXT 形式的文件名(# 是一个数字,TYPE 是两个或三个字符)。我希望我的脚本给我 TYPE。我应该怎么做才能得到它?猜猜我需要使用awk和sed。
我正在使用 /bin/sh (这是一个要求)
我想这就是你要找的。
$ echo R3cf.txt | sed "s/.[0-9]\(.*\)\..*/\1/"
cf
如果 txt 总是大写并且文件名总是以 R 开头,你可以做类似的事情。
$ echo R3cf.txt | sed "s/R[0-9]\(.*\)\.TXT/\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
您可以只使用外壳(取决于您的外壳bin/sh
:
f=R9ABC.TXT
f="${f%.TXT}" # remove the extension
type="${f#R[0-9]}" # remove the first bit
echo "$type" # ==> ABC