免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Shell 三劍客 之 sed
1. 簡介
sed是一個(gè)很好的文件處理工具,本身是一個(gè)管道命令。sed處理文件的方式為:逐行處理。具體為:首先sed把當(dāng)前正在處理的行保存臨時(shí)緩存區(qū)中,然后處理臨時(shí)緩沖區(qū)中的行,可以是替換、刪除、新增、選取等,完成后把該行輸出到屏幕上。sed每處理完一行就將其從臨時(shí)緩沖區(qū)刪除,然后將下一行讀入,進(jìn)行處理和顯示。處理完輸入文件的最后一行后,sed便結(jié)束運(yùn)行。
2. sed命令行格式
sed [選項(xiàng)] [命令]
2.1 選項(xiàng)
-n,使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN 的數(shù)據(jù)一般都會(huì)被列出到終端上。但如果加上 -n 參數(shù)后,則只有經(jīng)過sed特殊處理的那一行(或者動(dòng)作)才會(huì)被列出來。
-e,直接在命令列模式上進(jìn)行sed的動(dòng)作編輯。
-f,直接將sed的動(dòng)作寫在一個(gè)文件內(nèi)。-f filename 則可以運(yùn)行filename內(nèi)的sed命令。
-r,sed 的動(dòng)作支持的是延伸型正規(guī)表示法的語法。(默認(rèn)是基礎(chǔ)正規(guī)表示法語法)
-i,直接修改讀取的文件內(nèi)容,而不是輸出到終端。
2.2 指定行數(shù)
[n1[,n2]]function
例子:
sed -n '2p' datafile #打印第2行sed '2,5d' datafile #刪除第2到第5行
2.3 常用命令
命令
功能
a\
在當(dāng)前行后添加一行或多行。多行時(shí)除最后一行外,每行末尾需用“\”續(xù)行
c\
用此符號(hào)后的新文本替換當(dāng)前行中的文本。多行時(shí)除最后一行外,每行末尾需用"\"續(xù)行
i\
在當(dāng)前行之前插入文本。多行時(shí)除最后一行外,每行末尾需用"\"續(xù)行
d
刪除行
h
把模式空間里的內(nèi)容復(fù)制到暫存緩沖區(qū)
H
把模式空間里的內(nèi)容追加到暫存緩沖區(qū)
g
把暫存緩沖區(qū)里的內(nèi)容復(fù)制到模式空間,覆蓋原有的內(nèi)容
G
把暫存緩沖區(qū)的內(nèi)容追加到模式空間里,追加在原有內(nèi)容的后面
l
列出非打印字符
p
打印行
n
讀入下一輸入行,并從下一條命令而不是第一條命令開始對(duì)其的處理
q
結(jié)束或退出sed
r
從文件中讀取輸入行
!
對(duì)所選行以外的所有行應(yīng)用命令
s
用一個(gè)字符串替換另一個(gè)
g
在行內(nèi)進(jìn)行全局替換
w
將所選的行寫入文件
x
交換暫存緩沖區(qū)與模式空間的內(nèi)容
y
將字符替換為另一字符(不能對(duì)正則表達(dá)式使用y命令)
2.4 例子
2.4.1 打印 p
sed -n '1p' test.txt           # 只顯示文件的第1行 sed -n '$p' test.txt           # 只顯示文件的最后一行sed -n '1, 2p' test.txt        # 只顯示文件的第1行到第2行sed -n '2, $p' test.txt        # 顯示文件的第2行到最后一行sed -n '/China/p' test.txt     # 顯示帶有 China的行
2.4.2 刪除 d
sed '1d' test.txt         # 輸出刪除第1行sed '$d' test.txt         # 輸出刪除最后一行sed '1, 2d' test.txt      # 輸出刪除第1行到第2行sed '2, $d' test.txt      # 輸出刪除第2行到最后一行sed -n '/USA/d' test.txt     # 刪除帶有 USA 的行
2.4.3 增加一行或多行字符串
sed '1a China' test.txt      #在第一行后加一行:chinased '2,5a China' test.txt     #在第2行到第5行后各加一行:chinased '1a China\nUSA' test.txt  # 在第一行后加兩行:分別為china和USA。\n代表換行sed '/Asia/a China' test.txt  #在含有Asia的行后加一行:china#將a換成i,代表在本行之前添加一行
2.4.4 替換行
sed '1c China' test.txt     #把第一行替換為chinased '2,5c China' test.txt     #在第2行到第5行各替換為:chinased '/USA/c China' test.txt     #把第含有USA的行替換為china
2.4.5 替換一行中的部分字符串
sed 's/USA/China/g' test.txt     #把USA替換為chinased '2s/USA/China/g' test.txt     #把第二行中的USA替換為chinased '/Asia/s/USA/China/g' test.txt #把第包含Asia的行中的USA替換為China
進(jìn)階:(1)在指定行的末尾加字符串
sed '2{s/$/Asia/g}' test.txt #在第2行的末尾加上Asiased '/Cina/{s/$/Asia/g}' test.txt #在含有China的行的末尾加上Asia
(2)刪除指定行后的換行符\n
sed '2{N;s/\n//g}' test.txt #刪除第二行后的換行符sed '/USA/{N;s/\n//g}' test.txt #刪除含有USA的行后的換行符sed ':t;N;s/\n//;b t' test.txt #刪除文件中所有的換行符     也可以用tr: cattest.txt|tr '\n' ' '
(3)刪除指定行前的換行符\n
sed -r ':1;N;/\nUSA/s/\n//g;t1;P;D' test.txt #將 USA前的換行符刪掉
3.sed中的正則
元字符
功能
示例
^
行首定位符
/^my/  匹配所有以my開頭的行
$
行尾定位符
/my$/  匹配所有以my結(jié)尾的行
.
匹配除換行符以外的單個(gè)字符
/m..y/  匹配包含字母m,后跟兩個(gè)任意字符,再跟字母y的行
*
匹配零個(gè)或多個(gè)前導(dǎo)字符
/my*/  匹配包含字母m,后跟零個(gè)或多個(gè)y字母的行
[]
匹配指定字符組內(nèi)的任一字符
/[Mm]y/  匹配包含My或my的行
[^]
匹配不在指定字符組內(nèi)的任一字符
/[^Mm]y/  匹配包含y,但y之前的那個(gè)字符不是M或m的行
\(..\)
保存已匹配的字符
1,20s/\(you\)self/\1r/  標(biāo)記元字符之間的模式,并將其保存為標(biāo)簽1,之后可以使用\1來引用它。最多可以定義9個(gè)標(biāo)簽,從左邊開始編號(hào),最左邊的是第一個(gè)。此例中,對(duì)第1到第20行進(jìn)行處理,you被保存為標(biāo)簽1,如果發(fā)現(xiàn)youself,則替換為your。
&
保存查找串以便在替換串中引用
s/my/**&**/  符號(hào)&代表查找串。my將被替換為**my**
\<
詞首定位符
/\<my/  匹配包含以my開頭的單詞的行
\>
詞尾定位符
/my\>/  匹配包含以my結(jié)尾的單詞的行
x\{m\}
連續(xù)m個(gè)x
/9\{5\}/ 匹配包含連續(xù)5個(gè)9的行
x\{m,\}
至少m個(gè)x
/9\{5,\}/  匹配包含至少連續(xù)5個(gè)9的行
x\{m,n\}
至少m個(gè),但不超過n個(gè)x
/9\{5,7\}/  匹配包含連續(xù)5到7個(gè)9的行
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux下利用sed在文檔的每行首或行尾增加減少字符
掌握Sed命令
sed命令詳解 - 技術(shù)文檔 - 系統(tǒng)管理 Linux時(shí)代 - 開源、自由、共享 - 中國最大的Linux技術(shù)社區(qū)
sed 使用
很實(shí)用的linux運(yùn)維常用命令及知識(shí)
《shell編程指南》讀書筆記(三)——文本處理(正則表達(dá)式,grep,awk,sed)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服