真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux三劍客命令教學(xué) linux3劍客

005 Linux 命令三劍客之-sed

三劍客各有所長(zhǎng),和鍋鍋一一搞起就是了!

作為一家“創(chuàng)意+整合+營(yíng)銷(xiāo)”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們?cè)跇I(yè)內(nèi)良好的客戶(hù)口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、創(chuàng)意表現(xiàn)、網(wǎng)頁(yè)制作、系統(tǒng)開(kāi)發(fā)以及后續(xù)網(wǎng)站營(yíng)銷(xiāo)運(yùn)營(yíng)等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營(yíng)模式與有效的網(wǎng)絡(luò)營(yíng)銷(xiāo)方法,創(chuàng)造更大的價(jià)值。

使用示例:

使用示例:

使用示例:

sed [選項(xiàng)] s/[pattern]/[replace]/[flags]

[選項(xiàng)]常用的幾個(gè)參數(shù):

[pattern]

含義:待匹配的需要替換的內(nèi)容。

[replace]

常見(jiàn)的特殊含義字符:

[flags]

常見(jiàn)的可選參數(shù):

多個(gè)sed命令依次執(zhí)行,用分號(hào)分割或加選項(xiàng) -e,

使用示例:

把 test.html 文件中的第二個(gè) body 替換為 /body 。

分析實(shí)際就是把第二個(gè) body 替換為 /body,命令如下。

把 test.html 文件中的第二個(gè) body 替換為 /body 。

分析實(shí)際就是把第二個(gè) body 替換為 /body,命令如下。

編寫(xiě)執(zhí)行腳本的步驟如下:

touch sed.sh

sed.sh 中寫(xiě)入腳本內(nèi)容:

對(duì)sed.sh 腳本賦予可執(zhí)行權(quán)限

chmod ug+x sed.sh

執(zhí)行sed.sh 腳本,對(duì)文件進(jìn)行處理

sed -i -f sed.sh test.html

linux三劍客的基本使用——grep、sed、awk

grep、sed、awk是linux功能非常強(qiáng)大的三個(gè)命令,grep是查找過(guò)濾文本,sed是對(duì)文本進(jìn)行編輯替換,awk是對(duì)文本進(jìn)行分析報(bào)告。

最簡(jiǎn)單的理解就是找什么東西用grep,想修改什么內(nèi)容用sed,想格式化內(nèi)容用awk。

創(chuàng)建一個(gè)文件名為grep_text.txt的文件,并放入內(nèi)容:

SillyMadman is both a madman and a fool.

Everyone agrees with this sentence.

我要查找在grep_text.txt文件里有Silly的行

命令是: grep Silly grep_text.txt

會(huì)返回內(nèi)容:SillyMadman is both a madman and a fool.

也可以帶以下參數(shù),這些我認(rèn)為可能容易用到的參數(shù),其它的參數(shù)需要另行查找

文檔,比如可以使用正則進(jìn)行匹配。

內(nèi)容相關(guān)的

-B, --before context=NUM顯示所在行之前的行數(shù)

-A, --after context=NUM顯示所在行之后的行數(shù)

-C, --context=NUM打印輸出上下文的行數(shù)

過(guò)濾內(nèi)容相關(guān)的參數(shù):

-i, --忽略大小寫(xiě)區(qū)分

-w,--匹配查找的整個(gè)單詞

-x,--匹配查找的整行文本

-v, --過(guò)濾掉匹配的內(nèi)容

輸出內(nèi)容相關(guān)的參數(shù)

-n, --行號(hào)打印帶有輸出行的行號(hào)

比如,我要查找在grep_text.txt文件里不區(qū)分大小寫(xiě)查找sillymadman,并顯示行號(hào)和匹配文本的下一行,那么我可以用以下命令查找

grep sillymadman grep_text.txt -i -n -A1

內(nèi)容返回為

1:SillyMadman is both a madman and a fool.

2-Everyone agrees with this sentence.

總體而言grep的使用方式就是

grep [參數(shù)...](查找的內(nèi)容) (文件名)

grep也經(jīng)常搭配管道符號(hào)"|"使用,比如我要查詢(xún)某程序的進(jìn)程,并去掉查找進(jìn)程本身,那么命令為

ps -ef | grep program_name | grep -v grep

再創(chuàng)建一個(gè)文件名為sed_text.txt的文件,并放入內(nèi)容:

SillyMadman is both a madman and a fool.

Everyone agrees with this sentence.

我想要在第一行下面添加一句:woshishazi

命令是:sed '1a\woshishazi' sed_text.txt

返回內(nèi)容為:

SillyMadman is both a madman and a fool.

woshishazi

Everyone agrees with this sentence.

但是以上這個(gè)命令不會(huì)修改原文件,如果需要,需要加上-i

sed -i '1a\woshishazi' sed_text.txt

上面a是代表append,從指定行后面新的一行添加數(shù)據(jù),還有其他操作

操作有以下這些

a :從下面一行新增

i :從上面一行插入,

d :刪除

c :整行替換

p :打印

s :對(duì)指定內(nèi)容進(jìn)行替換

下面稍微舉下例:

a: sed '1a\woshishazi' sed_text.txt 從第一行后面添加

i: sed '1i\woshishazi' sed_text.txt 從第一行前面插入

d: sed '1d' sed_text.txt 刪除第一行

c: sed '1c\woshishazi' sed_text.txt 替換第一行內(nèi)容為woshishazi

p: sed -n '1p' sed_text.txt 打印第一行,一般搭配-n使用,其他內(nèi)容就不會(huì)再展示

s:這個(gè)相對(duì)復(fù)雜一點(diǎn)需要詳細(xì)說(shuō)明一下

sed的參數(shù)為 '[行]s/要被替換的內(nèi)容/新的內(nèi)容/g'

行是一個(gè)可選項(xiàng),可以選擇具體的行進(jìn)行替換

g代表替換所有匹配到的內(nèi)容,也可以改為數(shù)字,表示第幾次匹配到時(shí)進(jìn)行替換

sed 's\SillyMadman\shafengzi\g' sed_text.txt ,將所有SillyMadman替換為shafengzi

輸出結(jié)果為:

shafengzi is both a madman and a fool.

Everyone agrees with this sentence.

最后再創(chuàng)建一個(gè)文件名為awk_text.txt的文件,并放入內(nèi)容:

1 a

2 b

3 c

4 d

5 f

以空白符作為分隔符這個(gè)文本相當(dāng)于每一行有兩個(gè)字段。

那么打印第一個(gè)字段時(shí) awk '{print 0的話(huà),則代表打印所有字段

awk默認(rèn)以空白符作為分隔符,也可以指定分割符通過(guò)-F

awk -F: '{print $1}' awk_text.txt,以“:”作為作為分隔符

那么返回內(nèi)容就為

1 a

2 b

3 c

4 d

5 f

相當(dāng)于只有一列或者說(shuō)一個(gè)字段

然后還可以對(duì)前面加上一個(gè)正則對(duì)行進(jìn)行匹配內(nèi)容

awk '/a/{print 2 ~ /a/){print $1}' awk_text.txt

返回內(nèi)容為

1

Linux三劍客awk命令篇二:命令操作符

Linux三劍客awk命令篇二:命令操作符

關(guān)于awk的原理等基本知識(shí)請(qǐng)參考上篇:

Linux三劍客awk命令篇一:原理及基本命令

補(bǔ)充

1、語(yǔ)法格式:

(1) Awk完整語(yǔ)法

awk 'BEGIN{commands} pattern{commands}END{commands} ' file

BEGIN{commands}:處理數(shù)據(jù)前執(zhí)行的命令。

END{commands}:處理完數(shù)據(jù)后執(zhí)行的命令。

這兩個(gè)命令可以省略。見(jiàn)(2)

(2) Awk基本語(yǔ)法

awk -F '分割符' '/模式/{動(dòng)作} ' file

這里的 '/模式/{動(dòng)作} ' 類(lèi)似于sed的命令格式。

模式:

(1) 正則表達(dá)式(注意格式: /正則表達(dá)式/ )

(2) 條件表達(dá)式(例如: 等等)

總結(jié):

這里的模式通俗來(lái)講是 用來(lái)找誰(shuí), 而動(dòng)作表示是 干啥。

2、 awk的命令操作符

(1) 正則表達(dá)式與bash一致

(2) + - * / % ++ --

(3) || !

(4) = = != == ~ !~

~:表示匹配后面的模式,用于字段,見(jiàn) 案例1 。

其余的都比較常見(jiàn)就不舉例了。

3、案例

案例1:

~使用案例

awk -F : '$3 ~ /\...\/{print $1,$3}' /etc/passwd

解釋?zhuān)?/p>

模式:\...\

\ \表示定界符,只匹配3個(gè)字符。

$3 ~:表示$3這個(gè)字段必須符合后面模式(\...\)的要求。

見(jiàn)如下輸出結(jié)果,$3都是3個(gè)字符。

案例2:

% || ==使用案例

seq 100 | awk '$1 % 7 == 0 || $1 ~ /^99/{print $1}'

輸出結(jié)果的要求:

整除7或者以99開(kāi)頭

案例3:

++使用

awk 'BEGIN{num=0}{num++}END{print num}' /etc/passwd

簡(jiǎn)單解釋?zhuān)?/p>

BEGIN{num=0}:定義一個(gè)變量num

{num++}:這里沒(méi)有模式,只有動(dòng)作。

即每匹配到文件/etc/passwd的一行就執(zhí)行num++

END{print num}:文件遍歷結(jié)束,打印num的值,即文件的行數(shù)。

這里我們使用wc -l驗(yàn)證也是沒(méi)問(wèn)題的。

cat /etc/passwd | wc -l

上面3個(gè)案例簡(jiǎn)單的使用了awk的命令操作符。

雖然只是用到了幾個(gè)簡(jiǎn)單的,但是其他同理,大家可以執(zhí)行操作。

下一篇:

Linux三劍客awk命令篇二之內(nèi)部變量

歡迎大家給予寶貴的意見(jiàn)或者建議。

歡迎大家補(bǔ)充或者共享一些其他的方法。

感謝支持。


網(wǎng)頁(yè)題目:linux三劍客命令教學(xué) linux3劍客
瀏覽地址:http://weahome.cn/article/ddideds.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部