「ABFD00」や「KASD02」などの2つのIDを持つ2つのフォルダ名があります。
コマンドで使用するには、フォルダの小さな部分を変数(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
いくつかの特定のフォルダの最後の2文字だけが必要な場合は、次もあります。
echo ${VAR1:(-2)}
または(@RudiC拡張)GNU拡張子を持つ最後の2桁を除いて、数字なしでディレクトリを選択します。find
find . -type d -regex "[^0-9]*[0-9][0-9]" -exec sh -c 'echo sapcontrol -nr ${1:(-2)} -function GetSystemInstanceList' sh {} \;