【发布时间】:2021-12-29 13:36:50
【问题描述】:
因为在我的previous 帖子中表明我最好打开一个包含更多信息的新问题,所以我发布了这个问题。
我开始询问如何拆分下面的列表,以便将名称和版本保存为 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/-\([^-]*\)$/,\1/' 或 sed 's/\(.*\)-\([0-9].*\)/\1,\2/'
然而,事实证明,列表中还有其他可能性:
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
我可以调整命令使其适用于所有可能性吗? 也许从文件末尾开始并选择最后一个 - 之后的所有内容(从第一个数字开始)(从字符串的末尾看到)。 所以:
appname,1.10.10-r2021-12
我已经尝试在命令中添加一个额外的^,例如:
sed 's/\(.*\)-\([^0-9].*\)/\1,\2/' 稍微改变了输出,但不是我想要的
【问题讨论】:
-
感谢您的努力,请您更清楚地提及(通过编辑您的问题)输入和预期输出示例,以便我们清楚地了解问题,谢谢。
-
请只发布 1 个示例输入文件和 1 个相关的预期输出,不要将其分散到多个文件中,这样我们就不必进行多次复制/粘贴来测试它。
-
输入从何而来?