因為在我之前的帖子中表明我最好用更多資訊打開一個新問題,所以我發布了這個問題。
我開始詢問如何拆分下面的串列,以便將名稱和版本作為 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/'改變了一點輸出,但不是我想要的
uj5u.com熱心網友回復:
要將第一個連字符(后跟一個數字)更改為逗號,您可以使用
sed -E 's/-([[:digit:]])/,\1/'
它將您的輸入轉換為
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/397120.html
