我们使用的是Oracle Apps,我们还使用UNIX开发程序。在我们的Oracle Apps UNIX程序中,在运行程序时,我们将传递参数,并且参数值将存储在$ 1值中。 $ 1还将包含其他信息,例如实例,什么是程序ID,程序运行的用户名和用户ID等,如下所示
XX_VENDOR_ACH_HOST FCP_REQID=9946271 FCP_LOGIN="APPS/trn12fnd" FCP_USERID=127 FCP_USERNAME="USERNAME" FCP_PRINTER="noprint" FCP_SAVE_OUT=Y FCP_NUM_COPIES=0 "TEST Pay Batch 021120-c"
在这里, TEST Pay Batch 021120-c 是唯一的参数值。现在,我需要获取此参数值。所以,我写了如下命令
echo $1 | cut -d" " -f9 | sed 's/"//g'
但是,它只是打印单词 TEST (测试)而不是完整值。谁能帮我用完整的命令来获取 TEST Pay Batch 021120-c
关于, Srivathsava
答案 0 :(得分:1)
假设;
$1
的末尾那又怎么样;
echo "$1" | sed 's/.*"\([^"]\+\)"$/\1/'
输出:
TEST Pay Batch 021120-c
如果我的假设不正确,并且参数值字符串包含
一些独特的特征(例如,以TEST Pay Batch
开头),
请告诉我。然后,我将调整正则表达式以提取参数值。
答案 1 :(得分:0)
假设参数值位于$1
的末尾,可以执行以下操作:
echo $1|awk -F\" '{print $(NF-1)}'