Linux之sed命令(包含MacOS的用法)
一、概述
Linux下的sed命令是一種流編輯器,用于在命令行中對文本進行處理,常見的操作如:添加、修改、刪除、追加等。
當所用系統(tǒng)為MacOS時,直接使用sed會出現(xiàn)
command a expects \ followed by text
此類報錯,處理方法如下:
解決方案1:sed命令改寫 --> 添加一個空串
sed -i ‘s/apple/applewatch/g' /tmp/a.txt
- 改寫為
sed -i ‘' ‘s/apple/applewatch/g' /tmp/a.txt
解決方案2:調(diào)整mac下的sed命令 --> 安裝gnu-sed
- 執(zhí)行:
brew install gnu-sed alias sed=gsed
本人建議使用第二種方式解決,一勞永逸。
extra:在使用sed新增一行時會使用到\,macOS會把反斜杠解析為命令結(jié)束字符,后面不允許攜帶新字符,導(dǎo)致報錯
extra characters after \ at the end of a command
只能通過把命令分割成兩行內(nèi)容。
示例:
原命令:sed -i '$a new line' /tmp/a.txt macOS下需要寫成: sed -i '' -e '$a\ new line' /tmp/a.txt
二、用法
以下介紹sed命令常用方法。
1、文件末尾追加一行
sed -i '$a <new_line>' <file_name> 示例:sed -i '$a this is a new line' /tmp/sed.txt
2、指定行后新增一行
sed -i '/<specific_line>/a\<new_line>' <file_name> 示例:sed -i '/an existing line/a\this is a new next line' /tmp/sed.txt
其中<specific_line>可以為模糊匹配,例如為line但有多行都包含line,此時會在所有包含line關(guān)鍵字的行后都新增一行。
此規(guī)則以下都適用。
3、指定行前新增一行
sed -i '/<specific_line>/i\<new_line>' <file_name> 示例:sed -i '/an existing line/i\this is a new upper line' /tmp/sed.txt
4、修改指定行
sed -i 's/<old_content>/<new_content>/g' <file_name> 示例:sed -i 's/magic_switch=0/magic_switch=1/g' /tmp/sed.txt
5、刪除指定行
sed -i '/<specific_line>/d' <file_name> 示例:sed -i '/trash_line/d' /tmp/sed.txt
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
centos7 設(shè)置grub密碼及單用戶登錄實例代碼
這篇文章主要介紹了centos7 設(shè)置grub密碼及單用戶登錄實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
Linux使用tcpdump捕獲網(wǎng)絡(luò)數(shù)據(jù)包的詳細步驟
在網(wǎng)絡(luò)故障排查、協(xié)議分析或網(wǎng)絡(luò)安全檢測中,抓包工具是不可或缺的"利器",而tcpdump作為Linux系統(tǒng)中歷史最悠久、功能最強大的命令行抓包工具,至今仍是工程師的首選,本文將從基礎(chǔ)操作到實戰(zhàn)技巧,帶你掌握用tcpdump捕獲網(wǎng)絡(luò)數(shù)據(jù)包的完整流程,需要的朋友可以參考下2025-08-08
Linux Centos7系統(tǒng)端口占用問題的解決方法
這篇文章主要給大家介紹了關(guān)于Linux Centos7系統(tǒng)端口占用問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
VMware虛擬機中Ubuntu18.04無法連接網(wǎng)絡(luò)的解決辦法
這篇文章主要為大家詳細介紹了VMware虛擬機中Ubuntu18.04無法連接網(wǎng)絡(luò)的解決辦法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03
詳解如何在Linux中重置MySQL或者MariaDB的root密碼
本篇文章主要介紹了如何在 Linux 中重置 MySQL 或者 MariaDB 的 root 密碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03
CentOS 7中Nginx日志定時拆分實現(xiàn)過程詳解
這篇文章主要介紹了CentOS 7中Nginx日志定時拆分實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06

