日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 4.15 rc7,Linux学习之十五(sed命令)-2017-4-23

發布時間:2023/12/10 linux 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 4.15 rc7,Linux学习之十五(sed命令)-2017-4-23 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

sed命令:流編輯器

1、sed基本用法:

sed:Stream EDitor

行編輯器(全屏編輯器:vi)

2、sed:模式空間(默認不編輯原文件,僅對模式空間中的數據做處理,處理結束后,將模式空間打印至屏幕)

3、sed? [options] 'AddressCommand' file.....

-n:靜默模式,不再默認顯示模式空間中的內容

例如:[root@Ourlab ~]# sed -n '/^L/p' /etc/fstab

LABEL=/???????????????? /?????????????????????? ext3??? defaults??????? 1 1

LABEL=/home???????????? /home?????????????????? ext3??? defaults??????? 1 2

LABEL=/boot???????????? /boot?????????????????? ext3??? defaults??????? 1 2

LABEL=SWAP-sda5???????? swap??????????????????? swap??? defaults??????? 0 0

-i:直接修改原文件

-e script -e script:可以同時執行多個腳本

-f /path/to/sed_script:把腳本中保存的命令應用于指定的文件中

用法:sed -f /path/to/scripts file

-r:表示使用擴展正則表達式

Address:

1、StartLine,EndLine

比如:1,100

$:最后一行

例如:[root@Ourlab ~]# sed '3,$d' /etc/fstab

2、/RegExp/

比如:/^root/

例如:[root@Ourlab ~]# sed '/oot/d' /etc/fstab

3、/Pattern1/,/pattern2/:第一次被pattern1匹配到的行開始,至第一次被pattern2匹配到的行結束,這中間的所有行

4、LineNumber:指定的行

5、StartLine, +N:從startline開始,向后的n行;

例如:[root@Ourlab ~]# sed '1,+2d' /etc/fstab

Command:

d:刪除符合條件的行

例:[root@Ourlab ~]# sed '1,2d' /etc/fstab

p:顯示符合條件的行

例如:[root@Ourlab ~]# sed -n '/^L/p' /etc/fstab

LABEL=/???????????????? /?????????????????????? ext3??? defaults??????? 1 1

LABEL=/home???????????? /home?????????????????? ext3??? defaults??????? 1 2

LABEL=/boot???????????? /boot?????????????????? ext3??? defaults??????? 1 2

LABEL=SWAP-sda5???????? swap??????????????????? swap??? defaults??????? 0 0

a \string:在指定的行后面追加新行,內容為string

例如:[root@Ourlab ~]# sed '/^L/a \#hello world' /etc/fstab

LABEL=/???????????????? /?????????????????????? ext3??? defaults??????? 1 1

#hello world

\n:可以用于換行

i \string:在指定的行前面添加新行,內容為string

r filename:將指定的文件的內容添加至指定的行處

例如:[root@Ourlab ~]# sed '2r /etc/issue' /etc/fstab

LABEL=/???????????????? /?????????????????????? ext3??? defaults??????? 1 1

LABEL=/home???????????? /home?????????????????? ext3??? defaults??????? 1 2

Red Hat Enterprise Linux Server release 5.8 (Tikanga)

Kernel \r on an \m

w filename:將指定范圍內的內容另存至指定的文件中;

例如:[root@Ourlab ~]# sed '/oot/w /tmp/oot.txt' /etc/fstab

[root@Ourlab ~]# cat /tmp/oot.txt

LABEL=/boot???????????? /boot?????????????????? ext3??? defaults??????? 1 2

s/pattern/string/修飾符:查找并替換,默認只替換每行中第一次被匹配到的符串

例如:[root@Ourlab ~]# sed 's/oot/OOT/' /etc/fstab

LABEL=/bOOT???????????? /boot?????????????????? ext3??? defaults??????? 1 2

加修飾符:

g:全局替換

例如:[root@Ourlab ~]# sed 's/oot/OOT/g' /etc/fstab

LABEL=/bOOT???????????? /bOOT?????????????????? ext3??? defaults??????? 1 2

i:忽略字符大小寫

s///(s###,s@@@):分隔符不局限于‘/’,只要保證三個一致,可替換成其他符號;

例如:[root@Ourlab ~]# sed 's#oot#OOT#g' /etc/fstab

&:引用模式匹配整個串

任務1:like替換為liker,love替換為lover

例如:例如:[root@Ourlab ~]# sed 's#l..e#&r#g' sed.txt

hello,liker

hi,my lover

后向引用:\(\),\1,\2

任務2:like替換為Like,love替換為Love

例如:[root@Ourlab ~]# sed 's#l\(..e\)#L\1#g' sed.txt

hello,Like

hi,my Love

課后練習:

1、刪除/etc/grub.conf文件中行首的空白符;

[root@Ourlab ~]# sed 's/[[:space:]]//g' /etc/grub.conf

2、替換/etc/inittab文件中“id:3:initdefault:”一行中的數字為5;

[root@Ourlab ~]# sed 's@\(id:\)[0-9]\(:initdefault:\)@\15\2@g' /etc/inittab

3、刪除/etc/inittab文件中的空白行;

[root@Ourlab ~]# sed '/^$/d' /etc/inittab

4、刪除/etc/inittab文件中開頭的#號;

[root@Ourlab ~]# sed 's/^#//g' /etc/inittab

5、刪除/etc/inittab文件中開頭的#號,但要求#號后面必須有空白字符;

[root@Ourlab ~]# sed -r 's/^#[[:space:]]+//g' /etc/inittab

6、刪除某文件中以空白符后面跟#類的行中的開頭的空白字符及#;

[root@Ourlab ~]# sed -r 's/^[[:space:]]+#//g' ./testsed.txt

7、取出/etc/rc.d/abc/cef/文件路徑的目錄名稱;

[root@Ourlab ~]# echo "/etc/rc.d/abc/cef/" | sed -r 's@^(/.*/)[^/]+/?@\1@g'

閱讀(360) | 評論(0) | 轉發(0) |

總結

以上是生活随笔為你收集整理的Linux 4.15 rc7,Linux学习之十五(sed命令)-2017-4-23的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。