最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年04月06日 09:38:43   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇完美解決mac環(huán)境使用sed修改文件出錯(cuò)的問(wèn)題。

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ù)的說(shuō)明

-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.

原來(lái)sed -i需要帶一個(gè)字符串作為備份源文件的文件名稱,如果這個(gè)字符串長(zhǎng)度為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ò)的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

通州区| 左权县| 涿州市| 荣成市| 栖霞市| 永和县| 海宁市| 黑龙江省| 怀化市| 眉山市| 绥宁县| 雷州市| 西充县| 石棉县| 峨山| 永年县| 西藏| 囊谦县| 兰州市| 保山市| 察隅县| 揭东县| 新丰县| 阿巴嘎旗| 佛教| 当雄县| 广昌县| 库伦旗| 威信县| 武乡县| 年辖:市辖区| 海兴县| 邻水| 报价| 曲阜市| 久治县| 临颍县| 岗巴县| 唐山市| 莱州市| 平江县|