我有 2 个文件夹名称,它们有 2 个 ID,例如“ABFD00”和“KASD02”。
现在我需要文件夹的一小部分作为变量(00 和 02)以在命令中使用它。喜欢:
sapcontrol -nr $sid -function GetSystemInstanceList
答案1
您可以将输出分配给变量,然后可以使用模式匹配,例如:
VAR1=ABCD01
echo ${VAR1##*[[:alpha:]]}
这将从变量中删除所有字母字符并打印“01”。
答案2
尝试
$ find . -name "[A-Z]*" -type d |
while read FN
do echo sapcontrol -nr ${FN##*[A-Z]} -function GetSystemInstanceList
done
sapcontrol -nr 00 -function GetSystemInstanceList
sapcontrol -nr 02 -function GetSystemInstanceList
答案3
如果您只需要几个特定文件夹中的最后两个字符,那么还有:
echo ${VAR1:(-2)}
甚至(扩展@RudiC)并选择不带任何数字的目录,除了带有GNU扩展的最后两位数字find
find . -type d -regex "[^0-9]*[0-9][0-9]" -exec sh -c 'echo sapcontrol -nr ${1:(-2)} -function GetSystemInstanceList' sh {} \;