婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > 完美解決mac環(huán)境使用sed修改文件出錯(cuò)的問題

完美解決mac環(huán)境使用sed修改文件出錯(cuò)的問題

熱門標(biāo)簽:梧州防封電銷卡 昆明電銷機(jī)器人價(jià)格 益陽400電話申請(qǐng)辦理流程 400的電話一般從哪里辦理 怎么用百度地圖標(biāo)注坐標(biāo) 上海機(jī)器人外呼系統(tǒng)哪家好 地圖標(biāo)注人員分布 春運(yùn)地圖標(biāo)注app 江西全自動(dòng)外呼系統(tǒng)報(bào)價(jià)

sed是linux命令,用于處理文件內(nèi)容(修改,替換等),mac中都可以使用,但發(fā)現(xiàn)相同的替換命令在linux可以正常執(zhí)行,在mac則執(zhí)行失敗。

出錯(cuò)原因

用shell寫了個(gè)更新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)以下錯(cuò)誤:

$ 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需要帶一個(gè)字符串作為備份源文件的文件名稱,如果這個(gè)字符串長度為0,則不備份。

例如執(zhí)行

sed -i "_bak" "s/a/b/g" "example.txt"

則會(huì)創(chuàng)建一個(gè)example.txt_bak的備份文件,文件內(nèi)容為修改前的example.txt內(nèi)容

實(shí)例

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í)行前會(huì)備份源文件到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修改文件出錯(cuò)的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

標(biāo)簽:北京 懷化 贛州 惠州 亳州 九江 河南 新疆

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《完美解決mac環(huán)境使用sed修改文件出錯(cuò)的問題》,本文關(guān)鍵詞  完美,解決,mac,環(huán)境,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《完美解決mac環(huán)境使用sed修改文件出錯(cuò)的問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于完美解決mac環(huán)境使用sed修改文件出錯(cuò)的問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 武冈市| 大连市| 揭东县| 吉安市| 长葛市| 北京市| 象山县| 新密市| 磐安县| 大邑县| 阳东县| 双柏县| 华池县| 汽车| 新绛县| 宁海县| 应用必备| 淮南市| 夏津县| 准格尔旗| 曲沃县| 桓台县| 抚远县| 淅川县| 皮山县| 同心县| 西贡区| 加查县| 昆明市| 马山县| 花垣县| 图片| 通许县| 新巴尔虎左旗| 陕西省| 雷州市| 固原市| 民乐县| 梅河口市| 泰宁县| 大厂|