文本處理工具sed

sed:stream Editor流編輯器,默認不編輯原文件,僅對模式空間中的數據做處理;而后,處理結束后,將模式空間打印至屏幕。
語法:

    sed [option] 'AddressCommand' file1 file2...

option選項有:

    -n :靜默模式,不再顯示模式空間的內容-i :直接修改源文件-r :使用擴展正則表達式

Address常用的匹配范圍:

    1、startLine,endLine如:1,100 表示從第一行到100行,$表示最后一行2、/RegEXP/ 正則匹配,將匹配到的行顯示出來如:/root/ 將匹配到有root的行顯示3、/pattern1/,/pattern2/,從第一次匹配到pattern1開始到匹配到pattern2的行結束的中間的行4、LineNumber匹配指定的行5、startLine,+N,從startLine開始,往后的N行

command常用命令

    d:刪除匹配到的行p:顯示符合條件的行a \string :在匹配當的行后面追加string的內容i \string : 在匹配當的行前面添加string的內容r file :將file文件的內容添加到匹配到的行出w file :將匹配到的行添加到file文件中s/pattern/string/修飾符 :將匹配到的pattern替換成string,默認是替換第一個被匹配到的常用的修飾符有:i :忽略大小寫g :全局替換

如:
1、刪除/etc/grub.conf文件中行首的空白符;

    sed -r 's@^[[:spapce:]]+@@g' /etc/grub.conf

2、替換/etc/inittab文件中"id:3:initdefault:"一行中的數字為5;

    sed 's@\(id:\)[0-9]\(:initdefault:\)@\15\2@g' /etc/inittab

3、刪除/etc/inittab文件中的空白行;

    sed '/^$/d' /etc/inittab

4、刪除/etc/inittab文件中開頭的#號;

    sed -r 's@^#@@g' /etc/inittab

5、刪除某文件中開頭的#號及后面的空白字符,但要求#號后面必須有空白字符;

    sed -r 's@^#[[:space:]]+@@g' /etc/inittab

6、刪除某文件中以空白字符開頭后面跟#類的行中的開頭的空白字符及#號

    sed -r 's@^[[:space:]]+#@@g' /etc/inittab

7、取出一個文件路徑的目錄名稱;如取出/etc/inittab文件的目錄,即/etc

    ##echo "/etc/rc.d/" | sed -r 's@^(/.*/)[^/]+/?@\1@g'    echo '/etc/inittab' | sed -r 's#^(/.*)/(.*)#\1#'

基名/文件名:

    echo "/etc/rc.d/" | sed -r 's@^/.*/([^/]+)/?@\1@g'echo '/etc/inittab' | sed -r 's#^(/.*)/(.*)#\2#'

需要注意的是,如果要替換原文見的內容要加 -i 參數,sed 中的///,可以使用###或@@@等字符代替。
p的 command參數也要注意下,匹配到的行將會顯示兩次,沒匹配到的顯示一次,如果顯示兩次的,第一次是 p的的作用將匹配到的行打印出來,第二次是sed命令的作用,會將模式空間的內容顯示出來,所以說沒匹配到的也會顯示一次,如果想只顯示一次可以加 -n 參數,那么sed命令中模式空間的內容不顯示。

轉載于:https://blog.51cto.com/13803030/2139500

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277697.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277697.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277697.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mac OS X必備APP推薦之一

本篇博文要推薦一下裝機必備的APP,因為電腦的使用需求因人而異,這里我根據我的見解和長時間的使用經驗推薦一些我認為大家基本都用得到的APP,太過專業性質的我就不推薦了,當然我的推薦肯定會有疏漏和偏差的地方,還請熟…

2018-2019-2 20175235 實驗四《Android開發基礎》實驗報告

實驗目的 一、Android Studio的安裝測試 二、Activity測試 三、UI測試 四、布局測試 五、事件處理測試 一.Android Stuidio的安裝測試: 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章: 參考http://www.cnblogs.com…

Mac OS X必備APP推薦之二

本篇接著上一篇APP推薦的博文,繼續為大家推薦Mac下好用的APP。 一、首先推薦一款DaisyDisk,磁盤分析、清理工具。前面第一篇APP推薦中,我們推薦過APP和系統垃圾清理工具——Cleanmymac,這兩個APP側重有所不同。Cleanmymac主要清理…

【編程大系】Java資源匯總

1.學習資料: 1)Spring Boot 那些事:https://www.w3cschool.cn/springboot/ 對應的 gitHub代碼: https://github.com/JeffLi1993/springboot-learning-example 2)Spring Boot基礎視頻:https://www.w3cschool…

Mac OSX使用VMware Fusion安裝windows虛擬機教程

安裝虛擬機之前,先要有兩步準備工作。第一,安裝并激活VMware Fusion,如果大家還沒有下載VMware Fusion請參照上一篇博文,APP推薦之二,下載VMware Fusion并激活。第二,下載你想要安裝的系統鏡像。因為已經裝…

利用CAGradientLayer自定義顏色漸變view

說個故事: UI設計對大家說:“我們拒絕炒現飯!"。 然后就加了一波特效。 程序員猝。 #####效果分析: 1.水波動畫。 2.背景顏色漸變。 #####實現思路: 1.水波動畫,用CGMutablePathRef和三角函數畫出波浪線,讓后利用…

【筆記】spring定時器時間配置實例

"0/10 * * * * ?" 每10秒觸發 "0 0 12 * * ?" 每天中午12點觸發 "0 15 10 ? * *" 每天上午10:15觸發 "0 15 10 * * ?" 每天上午10:15觸發 "0 15 10 * * ? *" 每天上午10:15觸發 "0 15 10 * * ? 2005" 2…

java簡介和開發環境搭建

因為本人的Java一直以來水平都不怎么樣,大一的時候只考了60分。所以在臨近畢業的時候,我選擇了重修Java,這些天正在慢慢的回顧Java,會到博客里面記錄一些Java的知識,不為有多少人來看,只希望自己有所收獲。…

第六章 函數和宏定義實驗(2)

C程序設計實驗報告 實驗項目: 1、利用復化梯形公式計算定積分 2、計算Ackerman函數 3、編寫計算x的y次冪的遞歸函數getpower(int x,int y),并在主程序中實現輸入輸出 4、編寫計算學生年齡的遞歸函數 5、編寫遞歸函數實現Ackman函數 姓名:王錦…

將控件保存為圖片

原文:將控件保存為圖片將控件保存為圖片 周銀輝 這里分別提供win form 和 wpf 兩種方式 對于.net 2.0 我們可以簡單地利用 BitBlt 函數來實現,非常簡單,代碼如下: publicstaticclassControlToImageConverter { privateconstInt32 S…

Linux基礎命令---get獲取ftp文件

get 使用lftp登錄ftp服務器之后,可以使用get指令從服務器獲取文件。 1、語法 get [-E] [-a] [-c] [-O base] rfile [-o lfile] 2、選項列表 選項 說明 -o 指定輸出文件的名字,不指定則使用原來的名字 -c 如果失敗,持續獲取 -E 獲取…

Unity3D學習筆記之二資源導入以及工程管理

本次教程,我們來建立自己的一個工程并導入模型,對模型進行處理。特別說明:這系列教程參考自人人素材翻譯組出品的翻譯教程《Unity游戲引擎的基礎入門視頻教程》,本博客中采用的模型和方法均來源于此。這是我瀏覽過好多教程后覺得講…

關于cocos creator換裝功能的實踐與思考

2019獨角獸企業重金招聘Python工程師標準>>> 最近在做一個基于cocos creator的微信小游戲,其中一個主要的功能是給角色進行換裝。先來說下開發環境: cocos creator1.9.3spine 在官方的文檔中只有設置皮膚的接口,實際上是存在可以部…

pl/sql查詢表數據,報錯ORA-03115:不支持的網絡數據類型或表示法

今天測試人員遇到一個問題:pl/sql查詢表數據,報錯ORA-03115:不支持的網絡數據類型或表示法 我在plsql上查詢這張表是沒有問題的,去看了那張表,發現有個字段類型是binary_double, 查資料發現這是oracle10才出…

抖店一件代發實操,干貨滿滿!

我是電商珠珠 沒有貨源的新手,在店鋪剛開始的時候可以搞無貨源模式,也就是一件代發,去搬運別人店鋪的商品到自己店鋪,再去利用信息差去賺取差價。 很多人不知道具體要怎么做,今天我就來給大家講一講。 一、入駐 入…

Unity3D學習筆記之三Prefab組件的使用

本次教程,我們來創建一個簡單的Prefab組件。教程參考自人人素材翻譯組出品的翻譯教程《Unity游戲引擎的基礎入門視頻教程》。說到Prefab,中文翻譯為預設體,在Unity官方的書本《Unity4.X從入門到精通》中的解釋是:可以理解為是一個…

JavaScript之閉包

不少開發人員總是搞不清匿名函數和閉包這兩個概念,因此經常混用。閉包是指有權訪問另一個函數作用域中的變量的函數。創建閉包的常見方式,就是在一個函數內部創建另一個函數 --《JavaScript高級程序設計》 轉載于:https://www.cnblogs.com/songsongblue/…

【躍遷之路】【522天】程序員高效學習方法論探索系列(實驗階段279-2018.07.12)...

(躍遷之路)專欄 【躍遷之路】獎勵金計劃正式開始 從2018.7.1起,【躍遷之路】獎勵金計劃正式起航,從今以后,每月1日,我會將自己個人上月收入的1%計入【躍遷之路】獎勵金池,積累到足夠金額后,將適時用于獎勵那…

迷茫在路口——致我的2014

今天是2015年一月一日,2014年已經過去了。這意味著再過六個月整,我就要大學畢業,開始為自己的未來拼搏。這一年,我過的充實且迷茫。說2014充實,是因為我從寒假結束到有一個寒假的到來,幾乎沒有怎么閑下來&a…

Codeforces 173E Camping Groups 線段樹

Camping Groups 我們先計算出&#xff0c; 每個點當leader所能掌控的最多人數。 然后我們把詢問離線&#xff0c; 丟到responsibility最大的那個地方去。 然后從大到小往線段樹里加人&#xff0c; 加入完之后處理掉當前的詢問。 如果強制在線的話就只能樹套樹啦。 #include<…