成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Shell腳本如何實現(xiàn)查找與替換-創(chuàng)新互聯(lián)

小編給大家分享一下Shell腳本如何實現(xiàn)查找與替換,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供磴口網(wǎng)站建設(shè)、磴口做網(wǎng)站、磴口網(wǎng)站設(shè)計、磴口網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、磴口企業(yè)網(wǎng)站模板建站服務(wù),十年磴口做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

3.1 查找文本
grep:使用POSIX定義的基本正則表達式(BRE)。
egrep:使用擴展正則表達式(ERE)。
fgrep:快速grep。使用優(yōu)化的算法,匹配固定字符串而非正則表達式。

1992 POSIX標(biāo)準(zhǔn)將這三個改版整合成一個grep程序。

$ who | grep -F austen
使用-F選項查找固定字符串。事實上,只要匹配的模式里未含有正則表達式的meta字符,
則grep默認(rèn)行為模式就等同于使用了-F。

3.2.6 在文本文件里進行替換
一般來說,執(zhí)行文本替換的正確程序應(yīng)該是sed - 流編輯器。
sed 's/:.*//' /etc/passwd |     刪除第一個冒號之后的所有東西
sort -u   排序列表并刪除重復(fù)部分

任何可顯示的字符都能作為定界符。

代碼如下:


sed 's;/home/tolstoy/;/home/lt/;'
sed 's/\\/\\/g'


用-e和-f選項,不用將多個sed通過管道串起來,就可以一次替換多個。

代碼如下:


$ sed -e 's/foo/bar/g' -e 's/chicken/cow/g' file1.xml > file2.xml

$ cat fixup.sed
s/foo/bar/g
s/chicken/cow/g
...
$ sed -f fixup.sed file1.xml > file2.xml


3.2.8 sed的運作
命令行上的每個文件名會依次打開與讀取。如果沒有文件,則使用標(biāo)準(zhǔn)輸入。
sed讀取每個文件,一次讀一行,將讀取的行放到內(nèi)存的一個區(qū)域(模式空間)。
所有編輯上的操作都會應(yīng)用到模式空間的內(nèi)容,當(dāng)所有操作完成后,sed會將模式
空間的最后內(nèi)容打印到標(biāo)準(zhǔn)輸出,再回到開始處,讀取另一個輸入行。

3.3 字段處理
用空格(制表符)或特定的定界符(如冒號)。
#字符起始的行表示注釋,軟件必須可忽略這樣的行才行。

以定界符分隔字段的好例子就是/etc/passwd了:一行表示一個用戶,每個字段以冒號隔開。
該文件含有7個字段:
tolstoy:x:2076:10:Leo Tolstoy:/home/tolstoy:/bin/bash
1.用戶名稱:2.加密后密碼:3.用戶ID:4.用戶組ID:5.姓名:6.根目錄:7.登錄的Shell。

3.3.2 使用cut選定字段

代碼如下:


$ cut -d : -f 1,5 /etc/passwd
root:root
...
tolstoy:Leo Tolstoy
$ cut -d : -f 6 /etc/passwd
/root
...
/home/tolstoy


3.3.3 使用join連接字段
以一個共同的鍵值(主字段)將多個文件結(jié)合在一起。
$ cat sales
#業(yè)務(wù)員 數(shù)據(jù)量
joe     100
jane    200
herman 150
chris    300

$ cat quotas
#業(yè)務(wù)員 配額
joe     50
jane    75
herman 80
chris    95

代碼如下:


#! /bin/sh
# merge-sales.sh
# 刪除注釋并排序數(shù)據(jù)文件
sed '/^#/d' quotas | sort > quotas.sorted
sed '/^#/d' sales   | sort > sales.sorted
# 以第一個鍵值作結(jié)合
join quotas.sorted sales.sorted
# 刪除緩存文件
rm quotas.sorted sales.sorted


3.3.4 使用awk重新編排字段

awk程序基本架構(gòu):pattern { action }
pattern通常是由斜杠括起來的ERE,action通常是一個明了的print語句。
省略pattern則會對每一條輸入記錄執(zhí)行action,省略action則等同于{ print }。

awk自動將各個記錄分為字段,并將每條記錄內(nèi)字段數(shù)目存儲到內(nèi)建變量NF。
默認(rèn)以空白分隔,還可以將FS變量設(shè)置為一個不同的值。$加數(shù)字表示字段值。
awk '{ print $1 }'               打印第1個字段
awk '{ print $2, $5 }'          打印第2與第5個字段
awk '{ print $1, $NF }'        打印第一個與最后一個字段
awk 'NF > 0 { print $0 }'     打印非空行
awk 'NF > 0'                     同上

awk -F : '{ print $1, $5 }' /etc/passwd     設(shè)置字段分隔字符,-F選項自動設(shè)置FS變量。
root root
...
tolstoy Leo Tolstoy

記得在print的參數(shù)間用逗號隔開,否則awk將連接相鄰的所有值。
awk -F: '{ print "User" $1 "is really" $5 }' /etc/passwd
Userrootis reallyroot
...
Usertolstoyis reallyLeo Tolstoy

以上是“Shell腳本如何實現(xiàn)查找與替換”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章題目:Shell腳本如何實現(xiàn)查找與替換-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article28/dedocp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管域名注冊、做網(wǎng)站品牌網(wǎng)站建設(shè)、網(wǎng)站維護、虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
瑞安市| 阜城县| 博野县| 托克逊县| 怀柔区| 定陶县| 贺兰县| 罗城| 大石桥市| 遂昌县| 利辛县| 鄂托克前旗| 都江堰市| 中宁县| 泽库县| 胶南市| 临安市| 岳普湖县| 邹平县| 沁源县| 静宁县| 西峡县| 张北县| 聂荣县| 长乐市| 榆中县| 寿光市| 博湖县| 霍林郭勒市| 志丹县| 塔城市| 临漳县| 胶州市| 水城县| 楚雄市| 富川| 肇州县| 明光市| 云梦县| 利津县| 衢州市|