package main
import (
"fmt"
"io/ioutil"
"math/rand"
"regexp"
"strings"
"time"
)
func scanStrings(filePath string) ([]string, error) {
// 讀取文件內(nèi)容
content, err := ioutil.ReadFile(filePath)
if err != nil {
return nil, err
}
// 使用正則表達(dá)式匹配字符串
pattern := regexp.MustCompile(`[0-9A-Z]{24}`)
matches := pattern.FindAllString(string(content), -1)
return matches, nil
}
func removeDuplicates(slice []string) []string {
// 使用 map 來記錄已經(jīng)出現(xiàn)過的字符串
seen := make(map[string]bool)
result := []string{}
for _, s := range slice {
if _, ok := seen[s]; !ok {
seen[s] = true
result = append(result, s)
}
}
return result
}
func replaceUUIDs(filePath string, uuids []string) error {
// 讀取文件內(nèi)容
content, err := ioutil.ReadFile(filePath)
if err != nil {
return err
}
// 為了防止重復(fù)驼鞭,使用 map 來記錄替換過的字符串
replaced := make(map[string]bool)
// 循環(huán)替換所有的 UUID
for _, uuid := range uuids {
if _, ok := replaced[uuid]; ok {
continue // 已經(jīng)替換過了
}
// 隨機(jī)生成一個(gè) 24 位字符串來替換 UUID
randStr := randString(24)
// 替換 UUID
content = []byte(strings.ReplaceAll(string(content), uuid, randStr))
// 記錄替換過的 UUID
replaced[uuid] = true
}
// 將修改后的內(nèi)容寫回文件
err = ioutil.WriteFile(filePath, content, 0644)
if err != nil {
return err
}
return nil
}
func randString(n int) string {
rand.Seed(time.Now().UnixNano())
var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
b := make([]rune, n)
for i := range b {
b[i] = letterRunes[rand.Intn(len(letterRunes))]
}
return strings.ToUpper(string(b))
}
func main() {
filePath := "Runner.xcodeproj/project.pbxproj"
uuids, err := scanStrings(filePath)
if err != nil {
fmt.Println(err)
return
}
uuids = removeDuplicates(uuids) // 去重
err = replaceUUIDs(filePath, uuids)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("UUIDs replaced successfully.")
}
iOS項(xiàng)目 project.pbxproj文件UUID批量修改
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門雹熬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谣膳,你說我怎么就攤上這事竿报。” “怎么了继谚?”我有些...
- 文/不壞的土叔 我叫張陵烈菌,是天一觀的道長。 經(jīng)常有香客問我花履,道長芽世,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任诡壁,我火速辦了婚禮济瓢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妹卿。我一直安慰自己旺矾,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布纽帖。 她就那樣靜靜地躺著宠漩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪懊直。 梳的紋絲不亂的頭發(fā)上扒吁,一...
- 文/蒼蘭香墨 我猛地睜開眼尝偎,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼饶火!你這毒婦竟也來了鹏控?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬榮一對(duì)情侶失蹤肤寝,失蹤者是張志新(化名)和其女友劉穎当辐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲤看,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡缘揪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了义桂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片找筝。...
- 正文 年R本政府宣布陆赋,位于F島的核電站,受9級(jí)特大地震影響嚷闭,放射性物質(zhì)發(fā)生泄漏攒岛。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一胞锰、第九天 我趴在偏房一處隱蔽的房頂上張望灾锯。 院中可真熱鬧,春花似錦嗅榕、人聲如沸顺饮。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽兼雄。三九已至,卻和暖如春帽蝶,著一層夾襖步出監(jiān)牢的瞬間赦肋,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓驹尼,卻偏偏與公主長得像趣避,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子新翎,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 1程帕、需求 我們?cè)谧鲩_發(fā)過程中住练,會(huì)用到很多第三方庫,并且通過CocoaPods進(jìn)行管理骆捧,有時(shí)候引入的這個(gè)必要的庫在U...
- 有時(shí)候我們需要修改大量文件名稱敛苇,很多小伙伴不知道怎么操作,今天小編就來分享批量重命名的方法顺呕,將文件名稱修改為目錄名...
- 馬甲包產(chǎn)生背景: 1枫攀、解決被拒問題: 由于蘋果市場(chǎng)單一 審核嚴(yán)格 很有可能導(dǎo)致各種各樣的上線被拒問題 而多次被拒...
- 背景 windows 文件分區(qū)一般使用 NTFS 或 FAT32 文件系統(tǒng), linux 使用 ext4 / xf...