在Mac和Linux系統上都能使用的sed原地編輯標誌是什麼?
我們知道,Linux 中的 **sed** 命令代表流編輯器,主要用於對檔案執行操作,這些操作通常包括搜尋單詞、替換單詞或插入內容等等。這是一個非常有用的命令,可以在 Linux 核心中找到。
還應該注意的是,OS X 附帶的 **BSD** (Berkeley Software Distribution) **sed** 需要 **-i** 標誌才能工作,而 **GNU** sed則不需要。
使 **GNU** 版本的 **sed** 在 Mac OS X 上執行的一種方法是直接安裝 **gnu-sed** 並使用預設名稱,這將確保您不必在兩個作業系統上執行不同的命令。
為了在 Mac OS X 上安裝 **gnu-sed**,您可以考慮以下步驟。
命令
brew install gnu-sed --with-default-names
這將安裝 **gnu-sed**,您可以像在其他 Linux 機器上一樣使用它。
一個更好的解決方案是使用下面顯示的命令,這是一個帶有副檔名 **.bak** 的原地替換命令,這將幫助您在 Mac OS X 和 GNU 上實現相同的命令。
命令
sed -i.bak ‘s/sample/new_sample’ filename
在上面的命令中,單引號中的字串意味著我們將檔案中特定的單詞替換為 **new_sample**。
現在讓我們首先在 GNU 上執行上面的命令,看看輸出結果。
GNU
$ sed --version | head -1 GNU sed version 4.2.2 $ echo 'sample' > 1.txt $ sed -i.bak 's/sample/new_sample/' ./1.txt $ ls 1.txt 1.txt.bak $ cat ./1.txt new_sample
Mac OS X
$ sed --version 2>&1 | head -1 sed: illegal option -- - $ echo 'sample' > 1.txt $ sed -i.bak 's/sample/new_sample/' ./1.txt $ ls 1.txt 1.txt.bak $ cat ./1.txt new_sample
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP