小編給大家分享一下如何解決mac環(huán)境使用sed修改文件出錯的問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鎮(zhèn)寧做網(wǎng)站,已為上家服務(wù),為鎮(zhèn)寧各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792sed是linux命令,用于處理文件內(nèi)容(修改,替換等),mac中都可以使用,但發(fā)現(xiàn)相同的替換命令在linux可以正常執(zhí)行,在mac則執(zhí)行失敗。
出錯原因
用shell寫了個更新Config/Config.php版本的腳本,代碼如下:
#!/bin/bash file='Config/Config.php' old_version='1.1.0' new_version='1.1.1' #替換配置文件版本 sed -i "s/$old_version/$new_version/g" "$file" exit 0
在linux執(zhí)行正常,但在mac環(huán)境下執(zhí)行出現(xiàn)以下錯誤: $ cat ./Config/Config.php // 版本 define('VERSION', 1.1.0); $ ./update_config.sh sed: 1: "Config/Config.php": invalid command code C
man sed 查看原因,找到 -i 參數(shù)的說明
-i extension Edit files in-place, saving backups with the specified extension. If a zero-length extension is given, no backup will be saved. It is not recommended to give a zero-length extension when in-place editing files, as you risk corruption or partial content in situations where disk space is exhausted, etc.
原來sed -i需要帶一個字符串作為備份源文件的文件名稱,如果這個字符串長度為0,則不備份。
例如執(zhí)行
sed -i "_bak" "s/a/b/g" "example.txt"
則會創(chuàng)建一個example.txt_bak的備份文件,文件內(nèi)容為修改前的example.txt內(nèi)容
實例
1、如果需要備份源文件,update_config.sh修改為
#!/bin/bash file='Config/Config.php' old_version='1.1.0' new_version='1.1.1' #替換配置文件版本 sed -i "_bak" "s/$old_version/$new_version/g" "$file" exit 0
執(zhí)行結(jié)果
$ cat ./Config/Config.php // 版本 define('VERSION', 1.1.0); $ ./update_config.sh $ cat ./Config/Config.php // 版本 define('VERSION', 1.1.1); $ cat ./Config/Config.php_bak // 版本 define('VERSION', 1.1.0);
執(zhí)行前會備份源文件到Config.php_bak
2、如果不需要備份,把update_config.sh修改為
#!/bin/bash file='Config/Config.php' old_version='1.1.0' new_version='1.1.1' #替換配置文件版本 sed -i "" "s/$old_version/$new_version/g" "$file" exit 0 執(zhí)行結(jié)果 $ cat ./Config/Config.php // 版本 define('VERSION', 1.1.0); $ ./update_config.sh $ cat ./Config/Config.php // 版本 define('VERSION', 1.1.1);
看完了這篇文章,相信你對“如何解決mac環(huán)境使用sed修改文件出錯的問題”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
本文名稱:如何解決mac環(huán)境使用sed修改文件出錯的問題-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://www.rwnh.cn/article32/hcdpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、做網(wǎng)站、虛擬主機、服務(wù)器托管、微信小程序、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容