chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

sed工具豐富的功能介紹

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

掃碼添加小助手

加入工程師交流群

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

12.2.1打印某行

sed命令的格式為:sed -n 'n'p filename,單引號(hào)內(nèi)的n是一個(gè)數(shù)字,表示第幾行。-n選項(xiàng)的作用是只顯示我們要打印的行,無關(guān)緊要的內(nèi)容不顯示。示例命令如下:

# sed -n '2'p /etc/passwd
bin1bin:/bin:/sbin/nologin
你可以去掉-n選項(xiàng)對(duì)比一下差異。要想把所有行都打印出來,可以使用命令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

當(dāng)然,我們也可以指定一個(gè)區(qū)間打印,如下所示:

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

12.2.2打印包含某個(gè)字符串的行

示例命令如下:

# 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選項(xiàng)可以實(shí)現(xiàn)多個(gè)行為,如下所示:

# 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
這里參數(shù)d表示刪除的動(dòng)作,它不僅可以刪除指定的單行以及多行,而且可以刪除匹配某個(gè)字符的行,還可以刪除從某一行開始到文檔最后一行的所有行。

不過,這個(gè)操作僅僅是在顯示器屏幕上并不顯示這些行而已,文檔還好好的,請(qǐng)不要擔(dān)心。

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
上例中的參數(shù)s就表示替換的動(dòng)作,參數(shù)g表示本行全局替換,如果不加g則只替換本行出現(xiàn)的第一個(gè),這個(gè)用法其實(shí)和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

現(xiàn)在思考一下:如何刪除文檔中所有的數(shù)字或者字母?示例命令如下:

# 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]表示任意的數(shù)字。這里你也可以寫成[a-zA-Z]或者[0-9a-zA-Z]。如下所示:

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

12.2.5調(diào)換兩個(gè)字符串的位置

示例命令如下:

# 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
小括號(hào)在sed中屬于特殊符號(hào),必須在前面加轉(zhuǎn)義字符,替換時(shí)則寫成類似1、2或3的形式。上例中用()把想要替換的字符打包成了一個(gè)整體。

有這個(gè)轉(zhuǎn)義字符,會(huì)讓這個(gè)表達(dá)式看起來亂糟糟的,阿銘有個(gè)方法可以省略它。如下所示:
# 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
沒錯(cuò),正如你看到的,就是這個(gè)-r選項(xiàng)讓這個(gè)表達(dá)式更加清晰了,-r的作用跟grep的-E的作用是一樣的,它讓sed支持?jǐn)U展正則,擴(kuò)展正則其實(shí)就是使用了諸如:()、{}、|、+、?等特殊符號(hào)的正則。

除了調(diào)換兩個(gè)字符串的位置,阿銘還常常用sed在某一行前后增加指定內(nèi)容,如下所示:
# 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直接修改文件的內(nèi)容

示例命令如下:

# 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文件中的內(nèi)容了。但必須注意,在修改前最好先備份一下文件,以免改錯(cuò)。 好了,我總結(jié)了這些,你看還有補(bǔ)充的么?





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 顯示器
    +關(guān)注

    關(guān)注

    22

    文章

    5112

    瀏覽量

    143084
  • BIN文件
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    8877
  • grep
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    5007

原文標(biāo)題:sed工具常見用法我總結(jié)了這些

文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux中g(shù)rep、sed和awk命令詳解

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

    Linux中sed命令用法

    這篇文章為初學(xué)者提供了關(guān)于 Linux 中 sed 命令的全面指南,涵蓋了其歷史、用途以及一些實(shí)用的技巧和竅門。通過掌握 sed,您可以高效處理文本處理任務(wù),這對(duì)于任何使用 Linux 的人來說都是一項(xiàng)寶貴的技能。
    發(fā)表于 07-21 10:38 ?635次閱讀
    Linux中<b class='flag-5'>sed</b>命令用法

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

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

    linux學(xué)習(xí)大全之sed 命令詳解

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

    液晶控制器SED1520與單片機(jī)mPSD3334D簡介

    強(qiáng)大、存儲(chǔ)容量大和系統(tǒng)開發(fā)方便等優(yōu)點(diǎn),逐漸被應(yīng)用到對(duì)功能要求較高的控制領(lǐng)域。其可編程邏輯的豐富外圍接口和大容量存儲(chǔ)器的使用必須通過PSDsoft? Express軟件配置,與傳統(tǒng)51系列單片機(jī)開發(fā)
    發(fā)表于 04-11 07:00

    SED的顯示原理是什么?

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

    SED1335中文資料pdf

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

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

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

    SED1520與PIC單片機(jī)的接口設(shè)計(jì)

    介紹了液晶顯示驅(qū)動(dòng)器 SED1520 的結(jié)構(gòu)、編程指令,給出了其與PIC16F874 單片機(jī)接口的電路,并以內(nèi)置SED1520 的液晶模塊12232 為例介紹如何顯示漢字,并給出顯示部
    發(fā)表于 09-26 14:22 ?36次下載

    sed1335 c程序-源代碼

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

    SED電視機(jī)工作原理

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

    SED顯示技術(shù),SED顯示技術(shù)原理是什么?

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

    表面?zhèn)鲗?dǎo)電子發(fā)射顯示器(SED)和場(chǎng)發(fā)射顯示器(FED)的技術(shù)對(duì)比分析

    本文首先介紹了場(chǎng)發(fā)射顯示器概念及原理發(fā)展,其次介紹了表面?zhèn)鲗?dǎo)電子發(fā)射顯示器(SED)工作原理及技術(shù)優(yōu)勢(shì),最后介紹了FED和SED的相似性及區(qū)
    的頭像 發(fā)表于 06-04 11:22 ?1.4w次閱讀
    表面?zhèn)鲗?dǎo)電子發(fā)射顯示器(<b class='flag-5'>SED</b>)和場(chǎng)發(fā)射顯示器(FED)的技術(shù)對(duì)比分析

    關(guān)于Linux中的sed簡易介紹與工作原理

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

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

    sed簡稱流編輯器,即stream editor的縮寫。sed是一個(gè)操作、過濾和轉(zhuǎn)換文本內(nèi)容的強(qiáng)大工具。
    的頭像 發(fā)表于 12-18 09:14 ?3261次閱讀