如何使用sed从字符串中删除子字符串?
例如: 我需要删除所有这些:
/opt/openet/cdm/applications/SubscriptionManager/fwhome/config/log/corCTE_SM.pid process 18312 is not running
CTE_SM
之前和之后的所有内容。
我需要从这一行中提取CTE_SM
。
我该怎么做?
非常感谢你。
Alessandro Melo
答案 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