linux中从字符串中提取子字符串

linux中从字符串中提取子字符串,linux,awk,sed,Linux,Awk,Sed,我需要从oracle-xe-11.2.0-1.0.x86_64.rpm中提取oracle-xe-11.2.0-1.0.x86_64.rpm.zip,我不知道如何开始 必须满足的条件只有。zip需要删除。如果没有.zip,则字符串不会发生任何变化。怎么做 改用basename: basename oracle-xe-11.2.0-1.0.x86_64.rpm.zip .zip 结果: oracle-xe-11.2.0-1.0.x86_64.rpm 您可以使用sed sed 's/\.zip$/

我需要从
oracle-xe-11.2.0-1.0.x86_64.rpm
中提取
oracle-xe-11.2.0-1.0.x86_64.rpm.zip
,我不知道如何开始


必须满足的条件只有
。zip
需要删除。如果没有
.zip
,则字符串不会发生任何变化。怎么做

改用
basename

basename oracle-xe-11.2.0-1.0.x86_64.rpm.zip .zip
结果:

oracle-xe-11.2.0-1.0.x86_64.rpm
您可以使用sed

sed 's/\.zip$//' file

sed's/\.zip$/'
输出:

oracle-xe-11.2.0-1.0.x86_64.rpm oracle-xe-11.2.0-1.0.x86_64.rpm
string="oracle-xe-11.2.0-1.0.x86_64.rpm.zip"
echo "${string%.zip}"
oracle-xe-11.2.0-1.0.x86_64.rpm