国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux文本之sed流編輯器

這篇具有很好參考價值的文章主要介紹了Linux文本之sed流編輯器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、sed的相關(guān)知識及其工作流程

1)sed編輯器的介紹

2)sed 流編輯器的工作過程

3)怎么解決sed命令處理容量過大,或則內(nèi)容過多的而導(dǎo)致執(zhí)行效率慢的問題?

解決方案一(推薦用法):

解決方案二:

二、sed命令格式與選項操作符

1)sed命令格式

?基本操作格式:?

2)sed命令的常用選項

?3)sed命令的操作符?

三、?sed命令的打印功能

1)默認(rèn)打印方式

無要求的默認(rèn)打印

打印時對行號的操作

sed命令的尋址打印

①以數(shù)字形式打印行區(qū)間

?編輯

②文本模式過濾行內(nèi)容

四、sed的刪除操作?

?1)通過行號進(jìn)行刪除

?2)匹配字符串內(nèi)容刪除

?3)字符串搭配正則進(jìn)行刪除

?五、sed命令替換

1)字符串的替換?

匹配單字符進(jìn)行替換

?編輯

2)進(jìn)行字母字符進(jìn)行大小的替換?

大寫轉(zhuǎn)換為小寫?

小寫轉(zhuǎn)換為大寫

3)知識擴(kuò)充? “//”是可以被其他符號所替換的

經(jīng)典分隔符轉(zhuǎn)換案例

4)整行替換

使用c進(jìn)行替換,是對整行內(nèi)容進(jìn)行替換

5)單字符的替換?

?六、sed命令的增加

1)sed 命令行插入?

2)sed命令行后讀取文件插入

?七、sed 命令進(jìn)行復(fù)制粘貼

八、sed命令中字符串和字符的位置交換


一、sed的相關(guān)知識及其工作流程

1)sed編輯器的介紹

sed是一種流編輯器,它一次處理一行內(nèi)容。處理時,把當(dāng)前處理的行存儲在臨時緩沖區(qū)中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復(fù),直到文件末尾。文件內(nèi)容并沒有改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反復(fù)操作;編寫轉(zhuǎn)換程序等

2)sed 流編輯器的工作過程

sed的工作流程主要包括讀取、執(zhí)行和顯示三個過程:

  • 讀取: sed從輸入流 (文件、管道、標(biāo)準(zhǔn)輸入) 中讀取一行內(nèi)容并存儲到臨時的緩沖區(qū)中(又稱模式空間,pattern space )
  • 執(zhí)行: 默認(rèn)情況下,所有的sed命令都在模式空間中順序地執(zhí)行,除非指定了行的地址,否則sed命令將會在所有的行上依次執(zhí)行
  • 顯示: 發(fā)送修改后的內(nèi)容到輸出流。在發(fā)送數(shù)據(jù)后,模式空間將會被清空。在所有的文件內(nèi)容都被處理完成之前,上述過程將重復(fù)執(zhí)行, 直至所有內(nèi)容被處理完

在所有的文件內(nèi)容都被處理完成之前,上述過程將重復(fù)執(zhí)行,直至所有內(nèi)容被處理完

注意:默認(rèn)情況下所有的sed命令都是在模式空間內(nèi)執(zhí)行的,因此輸入的文件并不會發(fā)生任何變化,除非使用"sed -i"修改源文件、或使用重定向輸出到新的文件中?

3)怎么解決sed命令處理容量過大,或則內(nèi)容過多的而導(dǎo)致執(zhí)行效率慢的問題?

解決方案一(推薦用法):

使用split命令進(jìn)行文件分割(例如文件如果是百萬行,就創(chuàng)建一個單獨的目錄將文件分割為一百個為一萬行的文本)再使用sed命令進(jìn)行處理,除了split分割,也可以使用一個遍歷分割shell腳本進(jìn)行執(zhí)行

解決方案二:

使用cat ?文件名|sed ?處理 ? ? (但是該方案只能針對中大型的文件文本,如果文本量過大,處理效果不好)

二、sed命令格式與選項操作符

1)sed命令格式

?基本操作格式:?

  • sed -e '操作'? 文件1? ?文件2 ?
  • sed -n -e '操作'? ?文件1? ?文件2
  • sed -f? ?腳本文件? ?文件1? 文件2
  • sed -i -e '操作'? 文件1? 文件2
  • 執(zhí)行多條命令的格式:

    方式一:?

    sed -n -e '操作1' -e '操作2' 文件 ??

    方式二:?

    ?sed -n -e '操作1;操作2' 文件 ?? ?

    方式三:

    sed -e 'n{ ?
    
    操作1 ?
    
    操作2 ?
    
    ...... ?
    
    }' 文件1

2)sed命令的常用選項

選型 作用
-e 或--expression= 表示用指定命令來處理輸入的文本文件,只有一個操作命令時可省略,一般在執(zhí)行多個操作命令使用
-f 或--file= 表示用指定的腳本文件來處理輸入的文本文件
-h 或--help 顯示幫助
-n、--quiet或--silent 禁止sed編輯器輸出,但可以與p命令一起使用完成輸出
-i 直接修改目標(biāo)文本文件

?3)sed命令的操作符?

操作符 作用
s 替換,替換指定字符
d 刪除,刪除選定的行
a 增加,在當(dāng)前行下方增加一行指定內(nèi)容
i 插入,在選定行上方插入一行指定內(nèi)容
c 替換,將選定行替換為指定內(nèi)容
y 字符轉(zhuǎn)換,轉(zhuǎn)換前后的字符長度必須相同
p 打印行內(nèi)容。如果同時指定行,表示打印指定行;如果不指定行,則表示打印所有內(nèi)容;如果有非打印字符,則以ASCII碼輸出。其通常與"-n"選項一起使用
= 打印行號
l (小寫L) 打印數(shù)據(jù)流中的文本和不可打印的ASCII字符(比如結(jié)束符$、制表符\t)

三、?sed命令的打印功能

1)默認(rèn)打印方式

無要求的默認(rèn)打印

[root@localhost sed]#sed -e 'p'  english.txt 
 
 
[root@localhost sed]#sed -n 'p'  english.txt 

Linux文本之sed流編輯器

打印時對行號的操作

[root@localhost sed]#sed -n '=' english.txt 
 
 
[root@localhost sed]#sed -n '=;p' english.txt 

Linux文本之sed流編輯器

sed命令的尋址打印

①以數(shù)字形式打印行區(qū)間

方式一:按照行號尋求內(nèi)容

[root@localhost sed]#sed -n '1p'  english.txt 
 
[root@localhost sed]#sed -n '4p'  english.txt 
 
[root@localhost sed]#sed -n '$p'  english.txt 

Linux文本之sed流編輯器

方式二:進(jìn)行行號范圍區(qū)間的打印

[root@localhost sed]#sed -n '1,3p' english.txt 
 
[root@localhost sed]#sed -n '5,$p' english.txt 
 
[root@localhost sed]#sed -n '5,+2p' english.txt 
 
[root@localhost sed]#sed -e '5q' english.txt 

Linux文本之sed流編輯器

?方式三:指定間隔打印

[root@localhost sed]#sed -n -e '5p' -e'$p'  english.txt 
 
 
[root@localhost sed]#sed -n -e '2p' -e'3p'  english.txt 

Linux文本之sed流編輯器

方式四:對奇數(shù)行和偶數(shù)行的打印?

[root@localhost sed]#sed -n 'n;p'  english.txt 
 
[root@localhost sed]#sed -n 'p;n'  english.txt 

Linux文本之sed流編輯器

②文本模式過濾行內(nèi)容

方式一:對包含的字符串進(jìn)行過濾打印

[root@localhost sed]#sed -n '/o/p' english.txt 
 
[root@localhost sed]#sed -n '/th/p' english.txt 

Linux文本之sed流編輯器

?方式二:應(yīng)用基礎(chǔ)正則表達(dá)式進(jìn)行打印

[root@localhost sed]#sed -n  '/^root/p'   /etc/passwd
 
[root@localhost sed]#sed -n  '/bash$/p'   /etc/passwd
 
[root@localhost sed]#sed -n  '4,/bash$/p'   /etc/passwd

Linux文本之sed流編輯器

方式三:使用擴(kuò)展正則表達(dá)式進(jìn)行打印

注意:?

sed -r 支持?jǐn)U展正則表達(dá)式。同時在 使用{n}、{n,}、{n,m}時,括號{}前不需要加反斜杠\?

[root@localhost sed]#sed -r -n  '/(99:){2,}/p'   /etc/passwd
 
[root@localhost sed]#sed -r -n  '/^root|bash$/p'   /etc/passwd

Linux文本之sed流編輯器

四、sed的刪除操作?

注意:?

以下的操作均為在默認(rèn)情況下操作,有測試的效果,sed? -i? ?時會對文本進(jìn)行實際操作(建議對目標(biāo)文件先進(jìn)行備份,再進(jìn)行操作)

?1)通過行號進(jìn)行刪除

[root@localhost sed]#sed -n '3d;p' english.txt 
 
[root@localhost sed]#sed -n '5,8d;p' english.txt 
 
[root@localhost sed]#sed -n '5,$d;p' english.txt 

Linux文本之sed流編輯器

[root@localhost sed]#sed   '4,6!d'   english.txt 

Linux文本之sed流編輯器

?2)匹配字符串內(nèi)容刪除

[root@localhost sed]#sed   '/one/d'   english.txt 
 
[root@localhost sed]#sed   '/one/,/six/d'   english.txt 

Linux文本之sed流編輯器

[root@localhost sed]#sed   '/one/,/six/!d'   english.txt 
 
[root@localhost sed]#sed   '/six/!d'   english.txt 

?Linux文本之sed流編輯器

?3)字符串搭配正則進(jìn)行刪除

[root@localhost sed]#sed   '/^$/d'   english.txt 

Linux文本之sed流編輯器

刪除空行的三種方法:

  1. grep -v "^$" file.txt //過濾出非空行
  2. cat file.txt |tr -s "\n" //壓縮換行符
  3. sed '/^$/d' file.txt //刪除空行

?五、sed命令替換

格式:

行范圍 s/舊字符串/新字符串/替換標(biāo)記


替換標(biāo)記:

數(shù)字:表明新字符串將替換第幾處匹配的地方  

g:表面新字符串將會替換所有匹配的地方

p:打印與替換命令匹配的行,與-n一起使用

w 文件:將替換的結(jié)果寫入文件中 

 
sed命令的替換中:

s:替換字符串

c:整行替換

y:字符替換,替換前后的字符串長度必須相同

1)字符串的替換?

匹配單字符進(jìn)行替換

[root@localhost sed]#sed -n 's/root/test/2p'  /etc/passwd
 
[root@localhost sed]#sed -n 's/root/test/gp'  /etc/passwd

Linux文本之sed流編輯器

[root@localhost sed]# sed -n '/^root/ s/^/#/p'   /etc/passwd

Linux文本之sed流編輯器

2)進(jìn)行字母字符進(jìn)行大小的替換?

大寫轉(zhuǎn)換為小寫?

[root@localhost sed]#sed -i 's/[A-Z]/\l&/g'  english.txt 

Linux文本之sed流編輯器

小寫轉(zhuǎn)換為大寫

[root@localhost sed]#sed -i 's/[a-z]/\u&/'  english.txt 
 
[root@localhost sed]#sed -i 's/[a-z]/\U&/'  english.txt 

Linux文本之sed流編輯器

[root@localhost sed]#sed -i 's/[a-z]/\U&/g'  english.txt 

Linux文本之sed流編輯器

3)知識擴(kuò)充? “//”是可以被其他符號所替換的

經(jīng)典分隔符轉(zhuǎn)換案例

Linux文本之sed流編輯器

此時9代替/的作用,加上\才為數(shù)字9,否則為分隔符

4)整行替換

使用c進(jìn)行替換,是對整行內(nèi)容進(jìn)行替換

[root@localhost sed]# sed '/ONE/c 22' english.txt 
 
[root@localhost sed]# sed '/TWO/c TEST' english.txt 
[root@localhost sed]# sed 'y/TH/12/' english.txt 

5)單字符的替換?

#使用y,是對單個字符進(jìn)行替換,每個字符需要一一對應(yīng),不是整體替換。前后字符串長度需要一致,不然會報錯

[root@localhost sed]# sed 'y/TH/12/' english.txt 

Linux文本之sed流編輯器

?六、sed命令的增加

a:在行后添加內(nèi)容

i:在行前插入內(nèi)容

r:在行后讀入文件內(nèi)容

1)sed 命令行插入?

[root@localhost sed]# sed '/THREE/a  123 ' english.txt 
 
[root@localhost sed]# sed '/THREE/i  123 ' english.txt 

Linux文本之sed流編輯器

2)sed命令行后讀取文件插入

[root@localhost sed]#sed  '$r english2.txt'  english.txt

Linux文本之sed流編輯器

?七、sed 命令進(jìn)行復(fù)制粘貼

#H復(fù)制、d刪除、G粘貼到指定行下方

[root@localhost sed]#sed ?'1,3 {H;G};$G' english.txt?
?
[root@localhost sed]#sed ?'1,3 {H;d};$G' english.txt?

Linux文本之sed流編輯器

八、sed命令中字符串和字符的位置交換

[root@localhost sed]#echo 123abc|sed -r 's/(123)(abc)/\2\1/'

[root@localhost sed]#echo 123abc|sed -r 's/(.)(.)(.)(.)(.)(.)/\6\5\4\3\2\1/'

Linux文本之sed流編輯器文章來源地址http://www.zghlxwxcb.cn/news/detail-441563.html

到了這里,關(guān)于Linux文本之sed流編輯器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Sed編輯器

    Sed編輯器

    目錄 sed編輯器 命令格式: 常用選項: 常用操作: 打印內(nèi)容: 使用地址: ?編輯 替換:? 插入: sed是一種流編輯器,流編輯器會在編輯器處理數(shù)據(jù)之前基于預(yù)先提供的一組規(guī)則來編輯數(shù)據(jù)流。 sed編輯器可以根據(jù)命令來處理數(shù)據(jù)流中的數(shù)據(jù),這些命令要么從命令行中輸入,

    2024年02月05日
    瀏覽(15)
  • sed編輯器基礎(chǔ)命令

    sed編輯器基礎(chǔ)命令

    shell腳本編程系列 學(xué)習(xí)sed編輯器 sed編輯器被稱作流編輯器(stream editor),與普通的交互式文本編輯器不同,在交互式文本編輯器可以用鍵盤命令交互式插入、刪除或替換文本數(shù)據(jù)。流編輯器則是根據(jù)事先設(shè)計好的一組規(guī)則編輯數(shù)據(jù)流。 sed編輯器主要操作 從輸入中讀取一行數(shù)

    2024年02月01日
    瀏覽(23)
  • Linux文本編輯器-vim

    目錄 前言 Vim三種模式 打開方式 命令模式 插入模式 可視模式 保存和退出 Vim是一個功能豐富且強(qiáng)大的文本編輯器,被廣泛用于Linux系統(tǒng)。它是Vi的增強(qiáng)版本,提供了更多的功能和改進(jìn),同時可以通過插件擴(kuò)展其功能; 「命令模式」:可以進(jìn)行刪除、復(fù)制、粘貼等快捷操作。

    2024年02月15日
    瀏覽(34)
  • Vue 富文本編輯器tinymce的安裝教程(前端必備小知識)

    Vue 富文本編輯器tinymce的安裝教程(前端必備小知識)

    目錄 一、Tinymce編輯器簡介 二、安裝以及配置tinymce ????????2.1.安裝tinymce編輯器 ????????2.2.從node_modules/tinymce復(fù)制樣式到public目錄下,復(fù)制完畢的public下的目錄結(jié)構(gòu)如下 三、在Vue里面使用 ????????3.1.在components 目錄下新建 Editor.vue 將下面代碼復(fù)制進(jìn)去 ???????

    2024年02月11日
    瀏覽(98)
  • Linux 命令nano(文本編輯器)

    下面是一些Nano編輯器的詳細(xì)命令和操作: 要啟動Nano編輯器并打開一個文件進(jìn)行編輯,可以使用以下命令: 如果指定的文件不存在,Nano會創(chuàng)建一個新文件并使用給定的文件名。 在Nano編輯器中保存文件非常簡單。 如果在編輯過程中對文件進(jìn)行了修改,Nano會提示您是否保存修改

    2024年04月11日
    瀏覽(30)
  • 《Linux操作系統(tǒng)編程》第九章 數(shù)據(jù)查找和篩選工具 : 了解流編輯器sed和報表生成器awk的簡單使用

    《Linux操作系統(tǒng)編程》第九章 數(shù)據(jù)查找和篩選工具 : 了解流編輯器sed和報表生成器awk的簡單使用

    ???? 博主 libin9iOak帶您 Go to New World.??? ?? 個人主頁——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍》學(xué)會IDEA常用操作,工作效率翻倍~?? ???? 希望本文能夠給您帶來一定的幫助??文章粗淺,敬

    2024年02月12日
    瀏覽(32)
  • Linux--了解Linux中的各種文本編輯器

    Linux--了解Linux中的各種文本編輯器

    目錄 一、文本編輯器 1、簡介: 2、編輯器的功能: 3、適用于Linux的編輯器 3.1、vim編輯器的三種工作模式 3.2、vi編輯器中的相關(guān)指令 3.3、vi中的光標(biāo)移動命令 3.4、vi高級讀取和保存命令 3.5、vi插入和替換命令 3.6、vi編輯器中刪除和修改命令: 3.7、vi編輯器中的復(fù)制命令 3.8、

    2024年02月08日
    瀏覽(23)
  • Shell腳本基礎(chǔ)( 四: sed編輯器)

    Shell腳本基礎(chǔ)( 四: sed編輯器)

    目錄 1 簡介 1.1 sed編輯器的工作流程 2 sed 2.1 基本用法 ?2.2 sed基本格式 2.2.1 sed支持正則表達(dá)式 2.2.2 匹配正則表達(dá)式 2.2.3 奇數(shù)偶數(shù)表示 2.2.4 -d選項刪除 2.2.5 -i修改文件內(nèi)容 2.2.6? -a 追加 2.3 搜索替代 2.4?變量 sed是一種流編輯器,流編輯器會在編輯器處理數(shù)據(jù)之前基于預(yù)先提供

    2024年02月12日
    瀏覽(21)
  • Linux:Vim文本編輯器及其應(yīng)用詳解

    眾多 Linux 發(fā)行版系統(tǒng),通常都已經(jīng)默認(rèn)安裝好了 vi 或 Vim 文本編輯器,Centos 也不例外,該系統(tǒng)就默認(rèn)安裝有 vi 文本編輯器,但建議大家使用 Vim。 如果在命令行模式下輸入“vim”,輸出結(jié)果為“Command not found”,則表示此系統(tǒng)中未安裝 Vim。 CentOS 系統(tǒng)中,使用如下命令即可安

    2024年02月12日
    瀏覽(33)
  • Linux文本編輯器vim使用和配置詳解

    Linux文本編輯器vim使用和配置詳解

    ? vim是Linux的一款文本編輯器,可以用來編輯代碼,而且支持語法高亮,還可以進(jìn)行一系列配置使vim更多樣化。也可以運行于windows,mac os上。 ? vim有多種模式,但目前我們只介紹絕大多數(shù)場景用的到的模式,也就是命令模式,插入模式和底行模式,其他模式以后用到了會介

    2024年02月05日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包