在 Mac 上使用 sed 命令的幾個坑

2022-03-22 18:17:50 字數 846 閱讀 7471

sed -i  's/hello/world/g' hello.text
上面這行**,可以在 linux 上執行,作用是將找到的hello替換為world,並且直接儲存修改到檔案。但是如果在 mac 上,你會發現這行**會報錯。原因是在 mac 上,sed命令直接操作檔案的時候,必須指定備份的格式,而在 linux 上,卻並沒有這個要求。

sed -i '' 's/hello/world/g' hello.php
如上面的**所示,在-i之後加上一對引號,來指定備份格式,如果不需要備份,引號裡的內容可以為空。

sed -i '' '1i\ hello ' hello.php
上面這行**,作用是往檔案中插入hello,在 linux 下可以正常執行,但是在 mac 上,啊哦,報錯。原因是使用sed命令往檔案中插入文字時,必須在1i後面插入乙個換行符正確**如下。例如你要在終端使用此命令,正確**如下,在1i後,敲個回車,然後繼續輸入後面的命令。

sed -i '' '1i\

hello' hello.php

因為我是使用 ruby 來呼叫 shell 指令碼,因此會將命令寫在字串中,在 ruby 中使用sed插入文字的**如下。

system "sed -i '' '1i\\'$'\n''hello' hello.php"

Protobuf在Mac上使用

protobuf在mac上使用 要在mac上使用protobuf,並用在xcode中 需要做如下操作 1wget 解壓縮1tar zxvf protobuf cpp 3.6.1.tar.gz 編譯 安裝 cd protobuf 3.6.1根目錄 autogen.sh是獲取googlemock,並生成...

sed命令在mac和linux下的區別

前言 在 mac 上使用 sed 命令和 linux 上會有一定區別,主要是mac下必須指定備份格式,和mac下插入需要新增換行 linux下success sed i s hello world g hello.text 上面這行 可以在 linux 上執行,作用是將hello.text檔案中找到...

在Mac上配置Android adb命令

一 adb定義 adb android debug bridge 是android系統中的一種命令列工具,通過它可以和android裝置或模擬器通訊。二 在mac上的配置過程 啟動終端 進入當前使用者的home目錄,命令如下 cd home 更新你的 bash profile檔案,如果該檔案不存在,...