久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

centos中文本處理工具sed怎么用

153次閱讀
沒有評論

共計 3306 個字符,預(yù)計需要花費(fèi) 9 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 centos 中文本處理工具 sed 怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

sed 行編輯器

sed 是一種流編輯器,它一次處理一行內(nèi)容。處理時,把當(dāng)前處理的行存儲在臨時緩沖區(qū)中,稱為“模式空間”(pattern space),接著用 sed 命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。然后讀入下行,執(zhí)行下一個循環(huán)。如果沒有使諸如‘D’  的特殊命令,那會在兩個循環(huán)之間清空模式空間,但不會清空保留空間。這樣不斷重復(fù),直到文件末尾。文件內(nèi)容并沒有改變,除非你使用重
定向存儲輸出。

功能

主要用來自動編輯一個或多個文件, 簡化對文件的反復(fù)操作, 編寫轉(zhuǎn)換程序等

常用選項

-n emsp; emsp; 不輸出模式空間內(nèi)容到屏幕,即不自動打印
-e emsp; emsp; 多點(diǎn)編輯
-f /PATH/SCRIPT_FILE emsp; emsp; 從指定文件中讀取編輯腳本
-r emsp; emsp; 支持使用擴(kuò)展正則表達(dá)式
-i.bak emsp; emsp; 備份文件并原處編輯

script emsp; emsp; 地址命令 sed 工具地址定界

(1) 不給地址:對全文進(jìn)行處理

(2) 單地址:
emsp; emsp;#:指定的行,$:最后一行
emsp; emsp;/pattern/:被此處模式所能夠匹配到的每一行

(3) 地址范圍
emsp; emsp;#,#
emsp; emsp;#,+#
emsp; emsp;/pat1/,/pat2/
emsp; emsp;#,/pat1/

(4) ~:步進(jìn)
1~2 奇數(shù)行
2~2 偶數(shù)行 sed 工具

編輯命令

d emsp; emsp; 刪除模式空間匹配的行,并立即啟用下一輪循環(huán)
p emsp; emsp; 打印當(dāng)前模式空間內(nèi)容,追加到默認(rèn)輸出之后
a []text emsp; emsp; 在指定行后面追加文本,支持使用 \n 實(shí)現(xiàn)多行追加
i []text emsp; emsp; 在行前面插入文本
c []text emsp; emsp; 替換行為單行或多行文本
w /path/file emsp; emsp; 保存模式匹配的行至指定文件
r /path/file emsp; emsp; 讀取指定文件的文本至模式空間中匹配到的行后
= emsp; emsp; 為模式空間中的行打印行號
! emsp; emsp; 模式空間中匹配行取反處理 sed 工具
s/// emsp; emsp; 查找替換, 支持使用其它分隔符,s@@@,s###

替換標(biāo)記

g emsp; emsp; 行內(nèi)全局替換
p emsp; emsp; 顯示替換成功的行
w emsp; emsp;/PATH/FILE 將替換成功的行保存至文件中

高級編輯命令

P: emsp; emsp; 打印模式空間開端至 \n 內(nèi)容,并追加到默認(rèn)輸出之前
h: emsp; emsp; 把模式空間中的內(nèi)容覆蓋至保持空間中
H: emsp; emsp; 把模式空間中的內(nèi)容追加至保持空間中
g: emsp; emsp; 從保持空間取出數(shù)據(jù)覆蓋至模式空間
G: emsp; emsp; 從保持空間取出內(nèi)容追加至模式空間
x: emsp; emsp; 把模式空間中的內(nèi)容與保持空間中的內(nèi)容進(jìn)行互換
n: emsp; emsp; 讀取匹配到的行的下一行覆蓋至模式空間
N: emsp; emsp; 讀取匹配到的行的下一行追加至模式空間
d: emsp; emsp; 刪除模式空間中的行
D: emsp; emsp; 如果模式空間包含換行符,則刪除直到第一個換行符的模式空間中的文本,并不會讀取新的輸入行,而使用合成的模式空間重新啟動循環(huán)。如果模式空間不包含換行符,則會像發(fā)出 d 命令那樣啟動正常的新循環(huán)

練習(xí)

\1. 找出 3 到 6 行
centos 中文本處理工具 sed 怎么用
\2. 找出 3 到 3 + 2 行
centos 中文本處理工具 sed 怎么用
\3. 在第 2 行加入 new line

centos 中文本處理工具 sed 怎么用
\4. 在第 11 行加入 test line

centos 中文本處理工具 sed 怎么用
\5. 匹配以 alias 開頭的文本保存到 alias.log 里
centos 中文本處理工具 sed 怎么用
\6. 在每?后增加?空??

[root@centos ~]# sed G text.txt

\7. 在匹配 regex 的?之后插??空??

[root@centos ~]# sed /regex/G text.txt

\8. sed 將?件 test 中第 50 ?中的 haiwao 改為 haiwai?

[root@centos ~]# sed -n 50p |sed s/haiwao/haiwai/ test

\9. 替換一個文件 /etc/passwd 里的這 root:x:0:0:root:/root:/bin/bash 一行第二個 root 為 test?

[root@centos ~]# cat /etc/passwd| sed /^root/!d |sed s/root/test/2

\10. 打印 /etc/passwd 的奇數(shù)??

[root@centos ~]# sed -n 1~2p /etc/passwd

\11. 打印出 05 點(diǎn)到 12 點(diǎn)之間的所有?志?打印出 05:30:35 到 22:45:55 之間的所有?志?

[root@centos ~]# sed -n /2016\/06\/12 05:00:00/,/2016\/06\/12 12:00:00/p a.log
[root@centos ~]# sed -n /2016\/06\/12 05:30:35/,/2016\/06\/12 22:45:55/p a.log

\12. 刪除 centos7 系統(tǒng) /etc/grub2.cfg ?件中所有以空?開頭的???的空?字符

[root@centos ~]# sed -r s/^[[:blank:]]+// /etc/grub2.cfg

\13. 刪除 /etc/fstab ?件中所有以 #開頭,后??少跟?個空?字符的?的??的# 和空?字符

[root@centos ~]# sed -r s/^#[[:blank:]]+// g /etc/fstab

\14. 在 centos6 系統(tǒng) /root/install.log 每????增加 #號

[root@centos ~]# sed -r s/.*/# / /root/install.log

\15. 在 /etc/fstab ?件中不以 #開頭的?的??增加# 號

[root@centos ~]# sed -r s@^[^#]@# @p /etc/fstab

\16. 處理 /etc/fstab 路徑, 使? sed 命令取出其?錄名和基名
目錄名:

[root@centos ~]# echo /etc/fstab |sed -r s@^(./)([^/]+/?)$@\1@
基名:
[root@centos ~]# echo /etc/fstab |sed -r s@^(./)([^/]+/?)$@\2@

\17. 利? sed 取出 ifconfig 命令中本機(jī)的 IPv4 地址

[root@centos ~]# ifconfig|sed -n /broadcast/p |sed -r s@inet (.) netmask.@\1@
[root@centos ~]# ifconfig ens33 |sed -r 2!d; s@(.inet)(.)(netmask.*)@\2@

\18. 統(tǒng)計 centos 安裝光盤中 Package ?錄下的所有 rpm ?件的以. 分隔倒數(shù)第?個字段的重復(fù)次數(shù)

[root@centos ~]# ls .rpm|sed -r s@^..([^.]+).rpm$@\1@ |sort|uniq -c
[root@centos ~]# ls *.rpm|rev|cut -d. -f2|rev|sort|uniq -c

\19. 統(tǒng)計 /etc/init.d/functions ?件中每個單詞的出現(xiàn)次數(shù),并排序(? grep 和 sed 兩種?法分別實(shí)現(xiàn))

[root@centos ~]# sed -r s/[^[:alpha:]]/\n/g /etc/init.d/functions| sort | uniq -c | sort -nr
[root@centos ~]# egrep -o [[:alpha:]]+ /etc/init.d/functions| sort | uniq -c | sort -nr

\20. 將?本?件的 n 和 n + 1 ?合并為??,n 為奇數(shù)?

[root@centos ~]# seq 10 | sed 1~2N;s/\n/ /

以上是“centos 中文本處理工具 sed 怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計3306字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 游戏| 瓦房店市| 临潭县| 柳河县| 萨嘎县| 怀仁县| 会昌县| 五家渠市| 东方市| 宾阳县| 柞水县| 桓仁| 克山县| 吉隆县| 肃宁县| 益阳市| 龙游县| 武宣县| 阿尔山市| 赫章县| 农安县| 洛浦县| 永泰县| 青铜峡市| 昂仁县| 醴陵市| 肥城市| 九江县| 乐昌市| 会宁县| 西畴县| 泗水县| 抚远县| 陕西省| 浦城县| 西林县| 陵水| 芒康县| 遂宁市| 西华县| 天门市|