欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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.

原來(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ò)的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Linux中SELinux、Shell簡(jiǎn)介、touch命令的應(yīng)用小結(jié)

    Linux中SELinux、Shell簡(jiǎn)介、touch命令的應(yīng)用小結(jié)

    SELinux(Security-Enhanced Linux)是美國(guó)國(guó)家安全局(NSA)對(duì)于強(qiáng)制訪問控制的實(shí)現(xiàn),是Linux歷史上最杰出的新安全子系統(tǒng),這篇文章主要介紹了Linux中SELinux、Shell簡(jiǎn)介、touch命令的應(yīng)用知識(shí)總結(jié),需要的朋友可以參考下
    2023-02-02
  • Linux進(jìn)程間通信——使用流套接字

    Linux進(jìn)程間通信——使用流套接字

    本篇文章將會(huì)簡(jiǎn)單地講述如何使用socket進(jìn)行簡(jiǎn)單的網(wǎng)絡(luò)編程。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • linux定時(shí)任務(wù)crontab 實(shí)現(xiàn)每秒執(zhí)行一次的方法

    linux定時(shí)任務(wù)crontab 實(shí)現(xiàn)每秒執(zhí)行一次的方法

    linux crontab 命令,最小的執(zhí)行時(shí)間是一分鐘。這篇文章主要介紹了linux定時(shí)任務(wù)crontab 實(shí)現(xiàn)每秒執(zhí)行一次的方法,需要的朋友可以參考下
    2018-03-03
  • 詳解shell中>/dev/null 2>&1到底是什么

    詳解shell中>/dev/null 2>&1到底是什么

    這篇文章主要介紹了shell中>/dev/null 2>&1到底是什么,文中介紹的很詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-02-02
  • 使用fdisk命令管理磁盤分區(qū)詳解

    使用fdisk命令管理磁盤分區(qū)詳解

    這篇文章主要為大家介紹了使用fdisk命令管理磁盤分區(qū)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Shell中的變量使用小結(jié)

    Shell中的變量使用小結(jié)

    這篇文章主要介紹了Shell中的變量使用小結(jié),本文總結(jié)了變量的語(yǔ)法、常見使用形式等內(nèi)容,并分別給出代碼示例,需要的朋友可以參考下
    2015-05-05
  • shell中的循環(huán)語(yǔ)句、判斷語(yǔ)句實(shí)例

    shell中的循環(huán)語(yǔ)句、判斷語(yǔ)句實(shí)例

    這篇文章主要介紹了shell中的循環(huán)語(yǔ)句、判斷語(yǔ)句實(shí)例,本文對(duì)shell的循環(huán)語(yǔ)句、判斷語(yǔ)句做了一個(gè)小結(jié),以及在使用中的注意事項(xiàng),需要的朋友可以參考下
    2014-07-07
  • windows下上傳shell腳本不能運(yùn)行的解決方法

    windows下上傳shell腳本不能運(yùn)行的解決方法

    windows下上傳shell腳本不能運(yùn)行—將dos模式修改為unix 文件格式 就可以順利解決,下文給大家?guī)?lái)了詳細(xì)解決方法,一起看看吧
    2018-06-06
  • linux命令之crontab命令用法詳解

    linux命令之crontab命令用法詳解

    crontab命令一般被用來(lái)提交和管理用戶的需要周期性執(zhí)行的任務(wù),與windows下的計(jì)劃任務(wù)類似,這篇文章主要為大家介紹了它的使用,需要的可以參考下
    2023-08-08
  • Linux下.tar.xz文件的解壓教程詳解

    Linux下.tar.xz文件的解壓教程詳解

    xz這個(gè)壓縮可能很多都很陌生,不過您可知道xz是絕大數(shù)linux默認(rèn)就帶的一個(gè)壓縮工具。接下來(lái)通過本文給大家分享Linux下.tar.xz文件的解壓教程詳解,需要的朋友參考下吧
    2017-10-10

最新評(píng)論