中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

文件處理器——sed

發布時間:2020-08-03 17:04:52 來源:網絡 閱讀:283 作者:wx5d3fd1efe40e3 欄目:開發技術

一、sed工作流程

文件處理器——sed

sed 是一種在線的、非交互式的編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用 sed 命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。

Sed 主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等

二、命令格式

sed?[options]?'command'?file(s)?????
sed?[options]?-f?scriptfile?file(s)

注:

sed 和 grep 不一樣,不管是否找到指定的模式,它的退出狀態都是 0

只有當命令存在語法錯誤時,sed 的退出狀態才是非 0

三、支持正則表達式

與 grep 一樣,sed 在文件中查找模式時也可以使用正則表達式(RE)和各種元字符。正則表達式是括在斜杠間的模式,用于查找和替換,以下是 sed 支持的元字符。

使用基本元字符集 ^, $, ., *, [], [^], \< \>,\(\),\{\}

使用擴展元字符集 ?, +, { }, |, ( )

使用擴展元字符的方式:

\+

sed -r

四、sed基本用法

常見的命令選項

-e?允許多項編輯
-f?指定?sed?腳本文件名
-n?取消默認的輸出,僅顯示處理后的結果
-i?inplace,就地編輯
-r?支持擴展元字符
-h?顯示幫助

常見的操作

a:增加,在當前行下面增加一行指定內容
c:替換,將選定行替換為指定內容
d:刪除,刪除選定的行
i:插入,在選定行上面插入一行指定內容,忽略大小寫
p:打印,如果同時指定行,表示打印指定行,如果不指定行,則表示打印所有內容;如果有非打印字符,則以ASCII碼輸出。
s:替換,替換指定字符
y:字符轉換
G:取出暫存緩沖區的內容,將其復制到模式空間,追加在原有內容后面
g:取出暫存緩沖區的內容,將其復制到模式空間,覆蓋該處原有內容
x:交換暫存緩沖區與模式空間的內容
r:從文件中讀
w:將行寫入文件

五、sed命令示例

刪除命令:d

#?sed?-r?'3d'?datafile
#?sed?-r?'3{d;}'?datafile
#?sed?-r?'3aegqsqibtmh'?datafile
#?sed?-r?'3,$d'?datafile
#?sed?-r?'$d'?datafile
#?sed?-r?'/north/d'?datafile?
#?sed?-r?'/sout/d'?datafile

文件處理器——sed

替換命令:s

#?sed?-r?'s/west/north/g'?datafile?
#?sed?-r?'s/^west/north/'?datafile?
#?sed?-r?'s/[0-9][0-9]$/&.5/'?datafile?//&代表在查找串中匹配到的內容
#?sed?-r?'s/Hemenway/Jones/g'?datafile?
#?sed?-r?'s/(Mar)got/\1ianne/g'?datafile?
#?sed?-r?'s#3#88#g'?datafile

文件處理器——sed

讀取命令:r

#?sed?-r?'/Suan/r?/etc/newfile'?datafile?
#?sed?-r?'2r?/etc/hosts'?a.txt?
#?sed?-r?'/2/r?/etc/hosts'?a.txt

寫文件命令:w

#?sed?-r?'/north/w?newfile'?datafile?
#?sed?-r?'3,$w?/new1.txt'?datafile

追加命令:a

#?sed?-r?'2a\1111111111111'?/etc/hosts
#?sed?-r?'2a\1111111111111\
>?222222222222\
>?333333333333'?/etc/hosts

插入命令:i

#?sed?-r?'2i\1111111111111'?/etc/hosts
#?sed?-r?'2i111111111\
>?2222222222\
>?3333333333'?/etc/hosts

修改命令:c

#?sed?-r?'2c\1111111111111'?/etc/hosts
#?sed?-r?'2c\111111111111\
>?22222222222\
>?33333333333'?/etc/hosts

獲取下一行命令:n

#?sed?-r?'/eastern/{?n;?d?}'?datafile
#?sed?-r?'/eastern/{?n;?s/AM/Archile/?}'?datafile

暫存合區用命令:h H g? G

#?sed?-r?'1h;$G'?/etc/hosts
#?sed?-r?'1{h;d};$G'?/etc/hosts
#?sed?-r?'1h;?2,$g'?/etc/hosts
#?sed?-r?'1h;?2,3H;?$G'?/etc/hosts

暫存空間和模式空間互換命令:x

#?sed?-r?'4h;?5x;?6G'?/etc/hosts

反向選擇:!

#?sed?-r?'3d'?/etc/hosts
#?sed?-r?'3!d'?/etc/hosts

多重編輯選項:e

#?sed?-r?-e?'1,3d'?-e?'s/Hemenway/Jones/'?datafile?
#?sed?-r?'1,3d;?s/Hemenway/Jones/'?datafile?
#?sed?-r?'2s/WE/UPLOOKING/g;?2s/Gray/YYY/g'?datafile
#?sed?-r?'2{s/WE/UPLOOKING/g;?s/Gray/YYY/g}'?datafile

六、sed常見操作:

刪除配置文件中#號注釋行及空行:

#?sed?-ri?'/^[?\t]*#/d;?/^[?\t]*$/d'?/etc/vsftpd/vsftpd.conf
#?sed?-ri?'/^[?\t]*#|^[?\t]*$/d'?/etc/vsftpd/vsftpd.conf
#?sed?-ri?'/^[?\t]*($|#)/d'?/etc/vsftpd/vsftpd.conf

修改文件:

#?sed?-ri?'$a\chroot_local_user=YES'?/etc/vsftpd/vsftpd.conf
#?sed?-ri?'/^SELINUX=/cSELINUX=disabled'?/etc/selinux/config
#?sed?-ri?'/UseDNS/cUseDNS?no'?/etc/ssh/sshd_config
#?sed?-ri?'/GSSAPIAuthentication/cGSSAPIAuthentication?no'?/etc/ssh/sshd_config

給文件行添加注釋:

#?sed?-r?'2,6s/^/#/'?a.txt
#?sed?-r?'2,6s/(.*)/#\1/'?a.txt
#?sed?-r?'2,6s/.*/#&/'?a.txt?&匹配前面查找的內容


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新宾| 滦南县| 大厂| 涿州市| 扎兰屯市| 勃利县| 宝山区| 静乐县| 新密市| 罗源县| 吴江市| 枣强县| 营山县| 朝阳市| 丹凤县| 南阳市| 镇沅| 武城县| 鹤峰县| 维西| 芦溪县| 合水县| 铜陵市| 万宁市| 岐山县| 玛纳斯县| 安远县| 宁南县| 新晃| 奉节县| 儋州市| 鄄城县| 庐江县| 和硕县| 正宁县| 德阳市| 灵宝市| 保定市| 石渠县| 德兴市| 湘西|