我的脚本在形式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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top