shell 脚本 csvSel=`cat $myTargetFile|grep "${CUS_PROJECT_NAME},${CUS_PRODUCT_ID},${CUS_OS_TYPE},${CUS_CUSTOMER_NAME}"` delVercsv=`echo ${csvSel%$CUS_PRODUCT_VER}`
时间: 2023-12-17 21:06:11 浏览: 67
这段 Shell 脚本的作用是从名为 `$myTargetFile` 的文件中查找符合条件 `${CUS_PROJECT_NAME},${CUS_PRODUCT_ID},${CUS_OS_TYPE},${CUS_CUSTOMER_NAME}` 的行,并将该行的内容保存到变量 `$csvSel` 中。然后,从 `$csvSel` 变量中删除 `${CUS_PRODUCT_VER}` 字段及其后面的内容,并将结果保存到 `$delVercsv` 变量中。
具体来说,`cat $myTargetFile` 命令将文件 `$myTargetFile` 的内容输出到标准输出,`grep "${CUS_PROJECT_NAME},${CUS_PRODUCT_ID},${CUS_OS_TYPE},${CUS_CUSTOMER_NAME}"` 命令在输出中查找符合条件的行,并将结果输出到标准输出。`$()` 语法可以将命令输出的结果保存到变量中。
`${csvSel%$CUS_PRODUCT_VER}` 命令将变量 `$csvSel` 中最后一个匹配 `${CUS_PRODUCT_VER}` 的子串及其后面的内容删除,并将结果输出到标准输出。 `%` 符号表示从变量结尾处开始匹配,`$` 符号表示将匹配到的子串及其后面的内容删除。
相关问题
csvSel=`cat $myTargetFile|grep "${CUS_PROJECT_NAME},${CUS_PRODUCT_ID},${CUS_OS_TYPE},${CUS_CUSTOMER_NAME}"` delVercsv=`echo ${csvSel%$CUS_PRODUCT_VER}` 其中的$CUS_PRODUCT_VER 没有被删掉
这段代码中,$CUS_PRODUCT_VER没有被删掉是因为在delVercsv变量中没有指定要删除的内容。可以使用以下代码将$CUS_PRODUCT_VER从csvSel中删除:
```
csvSel=`cat $myTargetFile|grep "${CUS_PROJECT_NAME},${CUS_PRODUCT_ID},${CUS_OS_TYPE},${CUS_CUSTOMER_NAME}"`
delVercsv=${csvSel//$CUS_PRODUCT_VER/}
```
在这里,我们使用了bash shell的字符串替换功能,将$CUS_PRODUCT_VER替换为空字符串,从而实现删除的效果。
echo -e "\n版本自增" echo 'user='$1 myTargetFile=./device/newlink/NL5H00X/Hisi352_YG.csv csvSel=cat $myTargetFile|grep "${CUS_PROJECT_NAME},${CUS_PRODUCT_ID},${CUS_OS_TYPE},${CUS_CUSTOMER_NAME}" delVercsv=${csvSel//$CUS_PRODUCT_VER/} echo -e "\n csv select:\n\t"$csvSel echo -e "\n csv product version:\t"$CUS_PRODUCT_VER echo -e "\n csv delVercsv :\t"$delVercsv CUS_PRODUCT_VER=echo $CUS_PRODUCT_VER|tr -cd "[0-9]" let CUS_PRODUCT_VER++ CUS_PRODUCT_VER=echo V${CUS_PRODUCT_VER:0:1}.${CUS_PRODUCT_VER:1:1}.${CUS_PRODUCT_VER:2:1}.${CUS_PRODUCT_VER:3:1} echo " 版本更新为:"$CUS_PRODUCT_VER 我如何将修改过的CUS_PRODUCT_VER重新写到文件里面去
你可以使用sed命令将修改后的CUS_PRODUCT_VER写回到文件里。具体操作如下:
```
sed -i 's/'$CUS_PRODUCT_VER'/'$CUS_PRODUCT_VER_NEW'/g' $myTargetFile
```
其中,$CUS_PRODUCT_VER_NEW是修改后的版本号,$myTargetFile是要写入的文件路径。这条命令会将文件中所有匹配到的$CUS_PRODUCT_VER替换为$CUS_PRODUCT_VER_NEW。
阅读全文