题
我的脚本在形式R#TYPE.TXT需要一个文件名(#是一个数字和TYPE是两个或三个字符)。 我希望我的剧本给我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
不隶属于 StackOverflow