欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

sed初學(xué)者實(shí)用說明

 更新時(shí)間:2013年01月23日 18:19:17   作者:  
sed是一個(gè)非交互性文本流編輯器,可以與vi一樣對(duì)文本進(jìn)行編輯,但其可以在命令行或shell腳本中執(zhí)行,從而避免了繁重的人機(jī)交互式的文件編輯操作

例如,在多個(gè)系統(tǒng)、應(yīng)用程序安裝之后,我們往往需要對(duì)很多配置文件進(jìn)行修改,用vi編輯器意味著耗費(fèi)時(shí)間、重復(fù)勞動(dòng),而sed就可將我們從繁重的重復(fù)勞動(dòng)中解放出來。

sed的調(diào)用方式:

1、sed [sed選項(xiàng)] 'sed命令' 要修改的文件
2、sed [sed選項(xiàng)] -f sed腳本 要修改的文件
3、sed腳本 [sed選項(xiàng)] 要修改的文件

這里僅介紹最常用的第一種方式

sed選項(xiàng):僅列常用的

-i:直接修改源文件(不用這個(gè)選項(xiàng)的話無法直接修改,必須重定向到新文件,如果僅作為輸出測試則不需此選項(xiàng)),還可將源文件修改前備份
sed -i.bak 's/123/234/' test.txt 將test.txt備份為test.txt.bak,然后將文件內(nèi)行第一個(gè)出現(xiàn)的“123”替換為“234”
-e:多次編輯,例如先將所有的123替換為234,再將第7行前加#號(hào)注釋
sed -i -e 's/123/234/g' -i -e '7 s/^/#/' test.txt
-f:指定sed腳本文件名
-n:取消默認(rèn)的輸出(不打?。?,用sed不加任何選項(xiàng)的話你會(huì)看到所有內(nèi)容輸出,并不是按照sed命令所限制的條件輸出,那么配合“p”命令經(jīng)可以過濾掉不符合條件的行,并顯示出符合條件的行,例如
sed -n '查找所有包含字符123的行'p test.txt 或 sed -n '查找所有包含字符123的行p' test.txt

sed命令:這里可以使用正則表達(dá)式,如遇特殊字符,需用“\”來屏蔽其特殊含義,例如“\$”表示普通的字符$

x x為某行行號(hào)
x,y 例如2,5,從第2行到第5行
/val/ 查詢包含“val”字符的行
/val1/val2/ 查詢包含兩個(gè)模式的行
val/,x 在給定行號(hào)的行上查詢包含“val”的行
x,/val/ 通過行號(hào)和模式查詢匹配的行
x,y! 不包含指定行號(hào)x,y的行

p 打印匹配的行
= 顯示行號(hào)
a\ 在定位了的行之后附加內(nèi)容
i\ 在定位了的行之后插入內(nèi)容
d 刪除定位的行,例如:2d 代表刪除第2行
c\ 用新文本替換定位行的文本
s 替換,形式為:'s/查找的內(nèi)容/替換的內(nèi)容/'
g 進(jìn)行全局替換,如不使用此選項(xiàng)將只對(duì)該行匹配到的第一個(gè)結(jié)果進(jìn)行替換,該行下一個(gè)匹配的就不處理了。
...其他就不介紹了,百度搜下吧

實(shí)例學(xué)習(xí):
test.txt文件內(nèi)容為
The honeysuckle band played all night long for only $90
It was an evening of splendid music and company
Too bad the disco floor fell through at 23:10
The local nurse Miss P.Neave was in attendance

1、顯示第2行的內(nèi)容
sed -n '2p' test.txt

2、顯示第1到3行的內(nèi)容
sed -n '1,3'p test.txt

3、僅顯示包含“disco”的行
sed -n '/disco/'p test.txt

4、顯示包含“$”字符的行
sed -n '/\$/'p test.txt

5、顯示以數(shù)字結(jié)尾的行,[0-9]是正則表達(dá)式 代表數(shù)字0到9;“$”表示行尾(“^”表示行首)
sed -n '/[0-9]$/'p test.txt
顯示結(jié)果為:
The honeysuckle band played all night long for only $90
Too bad the disco floor fell through at 23:10

6、顯示以數(shù)字結(jié)尾的行并顯示以大寫T為開頭的行
sed -n -e '/^T/'p -e '/[0-9]$/'p test.txt

7、匹配任意字母、后跟任意字母的多次重復(fù),并以“ing”結(jié)尾的行
sed -n '/.*ing/'p test.txt

8、第一行與最后一行
sed -n '1p' test.txt
sed -n '$p' test.txt

9、將“nurse”改為“l(fā)ittle nurse”,“&”命令用來重新調(diào)用被替換的內(nèi)容
sed -n 's/nurse/little &/p' test.txt

10、先將所有的123替換為234,再將第7行前加#號(hào)注釋
sed -i -e 's/123/234/g' -i -e '7 s/^/#/' test.txt

11、將“--------”刪除,將空行刪除,將第一行和最后一行刪除,并打印第一列
文件內(nèi)容:
Database Size(MB) Date Created
------------------------------------------
mysql 2244 12/11/08
test 5632 12/11/08

(2 rows affected)
命令:
cat test.txt | sed 's/--*//g' | sed '/^$/d' | sed '$d' | sed '1d' | awk '{print $1}'
顯示結(jié)果:
mysql
test
說明:
使用s/--*//g刪除橫線-------
使用/^$/d刪除空行
使用$d刪除最后一行
使用1d刪除第一行
awk {print $1}打印第一列

12、一些雜項(xiàng)例子
^[0-9]表示行第一個(gè)字符為任意數(shù)字,例如“1asdf”;
^[0-9]*表示行首包含任意個(gè)數(shù)的數(shù)字,例如“1818asdf”
[0-9][0-9]*$表示行尾包含至少2個(gè)數(shù)字,例如“asdfasdf18”“asdf1818”
sed -i 's/^[0-9]*//g' test.txt 刪除行首的任意數(shù)字
sed -i -e 's/^[0-9]*//g' -i -e 's/$/& passed/' test.txt 刪除行首任意數(shù)字,并在每行結(jié)尾加上“ passed”
sed -i -e 's/^/#&' test.txt 給每行行首加上“#”注釋
s/\.$//g 刪除以句點(diǎn)結(jié)尾的行的句點(diǎn)
s/^[ ][ ]*// 刪除行首的任意個(gè)空格
s/^.// 刪除行首的第一個(gè)字符
s/^\/// 刪除行首的“/”字符
s/SP\(..\)//g 刪除字符“SP”以及緊跟其后的兩個(gè)任意字符,“SPLLY”-->“Y”

相關(guān)文章

  • linux命令詳解之useradd命令使用方法

    linux命令詳解之useradd命令使用方法

    這篇文章主要介紹了useradd命令使用方法,還包括用戶賬號(hào)的添加、刪除與修改、用戶口令的管理、用戶組的管理方法,大家參考使用吧
    2014-01-01
  • 在Linux中查找 IP 地址的3種方法

    在Linux中查找 IP 地址的3種方法

    在 Linux 系統(tǒng)中,經(jīng)常需要查找 IP 地址以進(jìn)行網(wǎng)絡(luò)配置、故障排除或安全管理,無論是查找本地主機(jī)的 IP 地址還是查找其他設(shè)備的 IP 地址,本文將介紹三種簡單的方法,幫助你在 Linux 中輕松找到所需的 IP 地址,需要的朋友可以參考下
    2023-09-09
  • linux shell之文件鎖

    linux shell之文件鎖

    經(jīng)常在 shell 腳本里要阻止其它進(jìn)程,比如 msmtp 自帶的mail queue 腳本,這個(gè)腳本的互斥做法是不正確的,下面介紹下發(fā)現(xiàn)的三個(gè)通過文件達(dá)到互斥的正確做法
    2016-08-08
  • 使用shell腳本一鍵部署LNMP架構(gòu)的方法

    使用shell腳本一鍵部署LNMP架構(gòu)的方法

    這篇文章主要介紹了使用shell腳本一鍵部署LNMP架構(gòu)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 淺談linux中shell變量$#,$@,$0,$1,$2的含義解釋

    淺談linux中shell變量$#,$@,$0,$1,$2的含義解釋

    下面小編就為大家?guī)硪黄獪\談linux中shell變量$#,$@,$0,$1,$2的含義解釋。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • linux啟動(dòng)流程詳細(xì)介紹

    linux啟動(dòng)流程詳細(xì)介紹

    這篇文章主要介紹了linux啟動(dòng)流程詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • ping發(fā)現(xiàn)掉包報(bào)警的shell代碼

    ping發(fā)現(xiàn)掉包報(bào)警的shell代碼

    一般用來判斷服務(wù)器是否穩(wěn)定,加入crontab中讓其10分鐘跑一次,需要的朋友可以參考下
    2013-01-01
  • linux下防火墻開啟某個(gè)端口號(hào)及防火墻常用命令使用(詳解)

    linux下防火墻開啟某個(gè)端口號(hào)及防火墻常用命令使用(詳解)

    下面小編就為大家?guī)硪黄猯inux下防火墻開啟某個(gè)端口號(hào)及防火墻常用命令使用(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • linux xz壓縮解壓的方法小結(jié)

    linux xz壓縮解壓的方法小結(jié)

    這篇文章主要介紹了linux xz壓縮解壓的方法小結(jié) ,文中給大家提到了linux解壓.tar.xz壓縮包 的方法,需要的朋友可以參考下
    2019-07-07
  • 分享20個(gè)Unix/Linux 命令技巧

    分享20個(gè)Unix/Linux 命令技巧

    這篇文章主要介紹了分享20個(gè)Unix/Linux 命令技巧,需要的朋友可以參考下
    2015-04-04

最新評(píng)論