在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

sed工具豐富的功能介紹

阿銘linux ? 來源:阿銘linux ? 作者:阿銘 ? 2022-12-02 09:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

以前用vim操作文檔的時候,可以查找也可以替換,但只限于在文本內部操作,而不能輸出到屏幕上。sed工具以及后面要介紹的awk工具就能把替換的文本輸出到屏幕上,而且還有其他更豐富的功能。

12.2.1打印某行

sed命令的格式為:sed -n 'n'p filename,單引號內的n是一個數字,表示第幾行。-n選項的作用是只顯示我們要打印的行,無關緊要的內容不顯示。示例命令如下:

# sed -n '2'p /etc/passwd
bin1bin:/bin:/sbin/nologin
你可以去掉-n選項對比一下差異。要想把所有行都打印出來,可以使用命令sed -n '1,$'p filename,如下所示:
# sed -n '1,$'p test.txt
rot0/rot:/bin/bash
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

當然,我們也可以指定一個區間打印,如下所示:

# sed -n '1,3'p test.txt
rot0/rot:/bin/bash
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin

12.2.2打印包含某個字符串的行

示例命令如下:

# sed -n '/root/'p test.txt
operator11operator:/root:/sbin/nologin
這種用法就類似于grep了,在grep中使用的特殊字符(如^、$、.、*等)同樣也能在sed中使用,如下所示:
# sed -n '/^1/'p test.txt
1111111111111111111111111111111
# sed -n '/in$/'p test.txt
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
# sed -n '/r..o/'p test.txt
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
# sed -n '/ooo*/'p test.txt
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash

sed命令加上-e選項可以實現多個行為,如下所示:

# sed -e '1'p -e '/111/'p -n test.txt
rot0/rot:/bin/bash
1111111111111111111111111111111

12.2.3刪除某些行

示例命令如下:

# sed '1'd test.txt
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
# sed '1,3'd test.txt
roooot0/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
# sed '/oot/'d test.txt
rot0/rot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
這里參數d表示刪除的動作,它不僅可以刪除指定的單行以及多行,而且可以刪除匹配某個字符的行,還可以刪除從某一行開始到文檔最后一行的所有行。

不過,這個操作僅僅是在顯示器屏幕上并不顯示這些行而已,文檔還好好的,請不要擔心。

12.2.4替換字符或者字符串

示例命令如下:

# sed '1,2s/ot/to/g' test.txt
rto0/rto:/bin/bash
operator11operator:/roto:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
上例中的參數s就表示替換的動作,參數g表示本行全局替換,如果不加g則只替換本行出現的第一個,這個用法其實和vim的替換大同小異。 除了可以使用/作為分隔符外,我們還可以使用其他特殊字符,例如#和@。如下所示:

# sed 's#ot#to#g' test.txt
rto0/rto:/bin/bash
operator11operator:/roto:/sbin/nologin
operator11operator:/rooto:/sbin/nologin
roooto0/rooooto:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
# sed 's@ot@to@g' test.txt
rto0/rto:/bin/bash
operator11operator:/roto:/sbin/nologin
operator11operator:/rooto:/sbin/nologin
roooto0/rooooto:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

現在思考一下:如何刪除文檔中所有的數字或者字母?示例命令如下:

# sed 's/[0-9]//g' test.txt
rot::/rot:/bin/bash
operator:/root:/sbin/nologin
operator:/rooot:/sbin/nologin
roooot::/rooooot:/bin/bash
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

[0-9]表示任意的數字。這里你也可以寫成[a-zA-Z]或者[0-9a-zA-Z]。如下所示:

# sed 's/[a-zA-Z]//g' test.txt
:0:/://
:0::/://
:0::/://
:0:/://
1111111111111111111111111111111

12.2.5調換兩個字符串的位置

示例命令如下:

# sed 's/(rot)(.*)(bash)/321/' test.txt
bash0/rot:/bin/rot
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
小括號在sed中屬于特殊符號,必須在前面加轉義字符,替換時則寫成類似1、2或3的形式。上例中用()把想要替換的字符打包成了一個整體。

有這個轉義字符,會讓這個表達式看起來亂糟糟的,阿銘有個方法可以省略它。如下所示:
# sed -r 's/(rot)(.*)(bash)/321/' test.txt
bash0/rot:/bin/rot
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
沒錯,正如你看到的,就是這個-r選項讓這個表達式更加清晰了,-r的作用跟grep的-E的作用是一樣的,它讓sed支持擴展正則,擴展正則其實就是使用了諸如:()、{}、|、+、?等特殊符號的正則。

除了調換兩個字符串的位置,阿銘還常常用sed在某一行前后增加指定內容,如下所示:
# sed 's/^.*$/123&/' test.txt
123rot0/rot:/bin/bash
123operator11operator:/root:/sbin/nologin
123operator11operator:/rooot:/sbin/nologin
123roooot0/rooooot:/bin/bash
1231111111111111111111111111111111
123aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

12.2.6直接修改文件的內容

示例命令如下:

# sed -i 's/ot/to/g' test.txt
# cat test.txt
rto0/rto:/bin/bash
operator11operator:/roto:/sbin/nologin
operator11operator:/rooto:/sbin/nologin
roooto0/rooooto:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
這樣就可以直接更改test.txt文件中的內容了。但必須注意,在修改前最好先備份一下文件,以免改錯。 好了,我總結了這些,你看還有補充的么?





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 顯示器
    +關注

    關注

    21

    文章

    5070

    瀏覽量

    141617
  • BIN文件
    +關注

    關注

    0

    文章

    26

    瀏覽量

    8648
  • grep
    +關注

    關注

    0

    文章

    23

    瀏覽量

    4881

原文標題:sed工具常見用法我總結了這些

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux中grep、sed和awk命令詳解

    今天給大家聊一聊Linux中文本操作的`三劍客:awk、grep、sed`,因其功能強大、使用頻繁,且是Linux下文本處理的得力利器,常被稱之為`文本三劍客`。`grep`常用于查找,`sed`常用于取行和替換,而`awk`常
    發表于 04-26 17:20 ?3592次閱讀
    Linux中grep、<b class='flag-5'>sed</b>和awk命令詳解

    快速理解linux流編輯器sed命令

    之前介紹過 awk 命令,sed 命令同樣是非常重要的文本處理工具,涉及到linux shell開發時,幾乎是避不開這兩大利器的sed 是 stream editor 的簡寫,是一種非
    發表于 11-30 10:44

    linux學習大全之sed 命令詳解

    sed是Linux系統中一個很好的文件處理工具,可以對數據進行替換、刪除、新增以及選取等操作,使用起來也十分方面,以下是全面的sed操作介紹sed
    發表于 01-12 15:20

    液晶控制器SED1520與單片機mPSD3334D簡介

    強大、存儲容量大和系統開發方便等優點,逐漸被應用到對功能要求較高的控制領域。其可編程邏輯的豐富外圍接口和大容量存儲器的使用必須通過PSDsoft? Express軟件配置,與傳統51系列單片機開發
    發表于 04-11 07:00

    SED的顯示原理是什么?

    SED顯示技術SED的基本顯示原理同CRT相同,都是由電子撞擊熒光材料而發光,但電子撞擊的方式卻不一樣。
    發表于 09-27 09:01

    SED1335中文資料pdf

    SED1335 是日本SEIKO EPSON 公司出品的液晶顯示控制器,它在同類產品中是功能最強的,其特點:1、較強功能的I/O 緩沖器;2、指令功能
    發表于 04-10 19:20 ?215次下載

    SED1335 控制器圖形液晶顯示模塊使用手冊

    前言 SED1335 的應用SED1335 是日本SEIKO EPSON 公司出品的液晶顯示控制器它在同類產品中是功能最強的其特點1. 有較強功能的I/O 緩沖器2. 指令
    發表于 09-07 22:43 ?38次下載

    SED1335在單片機系統中的設計與應用

    本文介紹了液晶控制器SED1335,論述了單片機控制點陣LCD 的硬件接口設計和軟件控制實現,然后利用KeilC51 進行編程,實現對SED1335 液晶顯示控制器的初始化、數據采集、數據處
    發表于 09-07 15:48 ?43次下載

    SED1520與PIC單片機的接口設計

    介紹了液晶顯示驅動器 SED1520 的結構、編程指令,給出了其與PIC16F874 單片機接口的電路,并以內置SED1520 的液晶模塊12232 為例介紹如何顯示漢字,并給出顯示部
    發表于 09-26 14:22 ?36次下載

    sed1335 c程序-源代碼

    SED1335 是日本SEIKO EPSON 公司出品的液晶顯示控制器,它在同類產品中是功能最強的,其特點:1、較強功能的I/O 緩沖器;2、指令功能
    發表于 04-11 09:37 ?1771次閱讀

    SED電視機工作原理

    SED電視機工作原理 多年以來,每臺電視機上的圖像都來自于陰極射線管(CRT)。CRT可以生成色彩豐富的高品質圖像,這就是目前許多電視機
    發表于 01-12 10:39 ?2116次閱讀

    SED顯示技術,SED顯示技術原理是什么?

    SED顯示技術,SED顯示技術原理是什么?     談到平板顯示技術,多數人可能只知道液晶和等離子,有人可能還知道有機發光
    發表于 03-27 11:56 ?4277次閱讀

    表面傳導電子發射顯示器(SED)和場發射顯示器(FED)的技術對比分析

    本文首先介紹了場發射顯示器概念及原理發展,其次介紹了表面傳導電子發射顯示器(SED)工作原理及技術優勢,最后介紹了FED和SED的相似性及區
    的頭像 發表于 06-04 11:22 ?1.4w次閱讀
    表面傳導電子發射顯示器(<b class='flag-5'>SED</b>)和場發射顯示器(FED)的技術對比分析

    關于Linux中的sed簡易介紹與工作原理

    熟悉 Linux 的同學一定知道大名鼎鼎的 Linux 三劍客,它們是 grep、awk、sed,我們今天要聊的主角就是 sed
    的頭像 發表于 03-26 15:35 ?2516次閱讀
    關于Linux中的<b class='flag-5'>sed</b>簡易<b class='flag-5'>介紹</b>與工作原理

    sed用得少?sed常用語法簡介

    sed簡稱流編輯器,即stream editor的縮寫。sed是一個操作、過濾和轉換文本內容的強大工具
    的頭像 發表于 12-18 09:14 ?2899次閱讀
    主站蜘蛛池模板: 一区二区网站 | 黄色成人免费网站 | 亚洲人成影网站~色 | 欧美性野久久久久久久久 | 性感美女视频黄.免费网站 性高清 | 一级特黄高清完整大片 | 99久久国产免费中文无字幕 | 国产精品天天看天天爽 | 亚洲欧美一区二区三区在线播放 | 四虎国产精品4hu永久 | 手机看片福利盒子 | 午夜黄大色黄大片美女图片 | 国产乱子伦一区二区三区 | 好吊色青青青国产在线观看 | 久久福利青草精品资源 | 黄色大片日本 | 欧美午夜视频在线 | 久久国产乱子伦精品免费看 | 国产激情三级 | 欧美成人性色xxxxx视频大 | 在线免费国产视频 | 三级全黄a | 日韩怡红院 | 日日噜夜夜噜 | www.操你啦| 亚洲男人天堂手机版 | 国产精品美女自在线观看免费 | 视频一区二区中文字幕 | 最新欧美精品一区二区三区 | 国产一区二区精品 | 久草免费新视频 | 狠狠综合 | eee在线播放成人免费 | 欧美亚洲啪啪 | 中国xxxxx高清免费看视频 | 韩国三级在线视频 | 青草99| 美女18毛片 | 欧美精品hdvideosex | 2021国产成人午夜精品 | 性夜影院爽黄a爽在线看香蕉 |