使用shell脚本删除子字符串

时间:2016-02-18 14:39:56

标签: shell sed

如何使用sed从字符串中删除子字符串?

例如: 我需要删除所有这些:

/opt/openet/cdm/applications/SubscriptionManager/fwhome/config/log/corCTE_SM.pid process 18312 is not running

CTE_SM之前和之后的所有内容。

我需要从这一行中提取CTE_SM

我该怎么做?

非常感谢你。

Alessandro Melo

1 个答案:

答案 0 :(得分:1)

假设你的字符串总是有大写字母,我正在替换小写字母&然后用awk分割字符串。

您甚至可以在用sed替换之前尝试拆分文本。

myString='/opt/openet/cdm/applications/SubscriptionManager/fwhome/config/log/corCTE_SM.pid process 18312 is not running'   
echo $myString | sed 's/[a-z]//g' | awk -F/ '{print $(NF)}' | awk -F. '{print $1}'

result = CTE_SM

<强>替代地

echo $myString | awk -F/ '{print $(NF)}' | awk -F. '{print $1}'

result = corCTE_SM