拆分应用程序名称和版本的字符串(跟进)
Splitting strings for appname and version (follow up)
因为在我的 post 中指出我最好打开一个包含更多信息的新问题,所以我 post 这个问题。
我开始询问如何拆分下面的列表,以便我将名称和版本作为 CSV。
appname-2021.12.24
appname2020-2021.12.23
app_name-2021.12.01
app_name2020-2021.12.02
app-name-2021.11.10
appname-2021.12.24-SNAPSHOT
在答案的帮助下,我得出了命令:
sed 's/-\([^-]*\)$/,/'
或 sed 's/\(.*\)-\([0-9].*\)/,/'
然而,事实证明列表中还有其他可能性:
app_name-10.10.0-beta-1-10
appname-1.10.10-r2021-12
两者都是逗号后的最后一个数字
app_name-10.10.0-beta-1,10
appname-1.10.10-r2021,12
我可以调整它适用于所有可能性的命令吗?
也许从文件末尾开始,select 最后一个 - (从字符串末尾看)之后的所有内容(从第一个数字开始)。
所以:
appname,1.10.10-r2021-12
我试过在命令中添加一个额外的 ^
,例如:
sed 's/\(.*\)-\([^0-9].*\)/,/'
稍微改变了输出,但不是我想要的
要将第一个连字符(后跟一个数字)更改为逗号,您可以使用
sed -E 's/-([[:digit:]])/,/'
将您的输入转换为
appname,2021.12.24
appname2020,2021.12.23
app_name,2021.12.01
app_name2020,2021.12.02
app-name,2021.11.10
appname,2021.12.24-SNAPSHOT
app_name,10.10.0-beta-1-10
appname,1.10.10-r2021-12
因为在我的
我开始询问如何拆分下面的列表,以便我将名称和版本作为 CSV。
appname-2021.12.24
appname2020-2021.12.23
app_name-2021.12.01
app_name2020-2021.12.02
app-name-2021.11.10
appname-2021.12.24-SNAPSHOT
在答案的帮助下,我得出了命令:
sed 's/-\([^-]*\)$/,/'
或 sed 's/\(.*\)-\([0-9].*\)/,/'
然而,事实证明列表中还有其他可能性:
app_name-10.10.0-beta-1-10
appname-1.10.10-r2021-12
两者都是逗号后的最后一个数字
app_name-10.10.0-beta-1,10
appname-1.10.10-r2021,12
我可以调整它适用于所有可能性的命令吗? 也许从文件末尾开始,select 最后一个 - (从字符串末尾看)之后的所有内容(从第一个数字开始)。 所以:
appname,1.10.10-r2021-12
我试过在命令中添加一个额外的 ^
,例如:
sed 's/\(.*\)-\([^0-9].*\)/,/'
稍微改变了输出,但不是我想要的
要将第一个连字符(后跟一个数字)更改为逗号,您可以使用
sed -E 's/-([[:digit:]])/,/'
将您的输入转换为
appname,2021.12.24
appname2020,2021.12.23
app_name,2021.12.01
app_name2020,2021.12.02
app-name,2021.11.10
appname,2021.12.24-SNAPSHOT
app_name,10.10.0-beta-1-10
appname,1.10.10-r2021-12