最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell腳本學(xué)習(xí)指南之查找與替換介紹

 更新時(shí)間:2013年02月13日 22:01:13   作者:  
Shell腳本學(xué)習(xí)指南之查找與替換介紹,需要的朋友可以參考下

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

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

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

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

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

復(fù)制代碼 代碼如下:

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

用-e和-f選項(xiàng),不用將多個(gè)sed通過(guò)管道串起來(lái),就可以一次替換多個(gè)。

復(fù)制代碼 代碼如下:

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

3.3 字段處理
用空格(制表符)或特定的定界符(如冒號(hào))。
#字符起始的行表示注釋?zhuān)浖仨毧珊雎赃@樣的行才行。

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

3.3.2 使用cut選定字段

復(fù)制代碼 代碼如下:

$ 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連接字段
以一個(gè)共同的鍵值(主字段)將多個(gè)文件結(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

復(fù)制代碼 代碼如下:

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

3.3.4 使用awk重新編排字段

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

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

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

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

相關(guān)文章

  • Shell腳本從文件中逐行讀取內(nèi)容的幾種方法實(shí)例

    Shell腳本從文件中逐行讀取內(nèi)容的幾種方法實(shí)例

    今天小編就為大家分享一篇關(guān)于Shell腳本從文件中逐行讀取內(nèi)容的幾種方法實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Linux實(shí)現(xiàn)文件定期本地備份/異地備份/刪除備份的腳本

    Linux實(shí)現(xiàn)文件定期本地備份/異地備份/刪除備份的腳本

    數(shù)據(jù)備份的意義就在于,當(dāng)受到網(wǎng)絡(luò)攻擊、入侵、電源故障或者操作失誤等事故的發(fā)生后,可以完整、快速、簡(jiǎn)捷、可靠地恢復(fù)原有系統(tǒng)。本文為大家準(zhǔn)備了文件定期本地備份/異地備份/刪除備份的腳本,希望對(duì)你們有所幫助
    2022-10-10
  • shell腳本實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)雙機(jī)定時(shí)備份的方法

    shell腳本實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)雙機(jī)定時(shí)備份的方法

    最近有個(gè)需求,要求實(shí)現(xiàn)對(duì)某個(gè)數(shù)據(jù)庫(kù)進(jìn)行雙機(jī)備份,每天凌晨備份一次,要求主機(jī)器只保留最近十五天的記錄,我們決定用shell腳本加定時(shí)任務(wù)的方式來(lái)實(shí)現(xiàn)這個(gè)需求,接下來(lái)通過(guò)本文給大家介紹shell腳本實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)雙機(jī)定時(shí)備份的方法,感興趣的朋友一起看看吧
    2022-07-07
  • 詳解如何在Linux中創(chuàng)建和使用別名命令

    詳解如何在Linux中創(chuàng)建和使用別名命令

    Linux?用戶經(jīng)常需要反復(fù)使用一個(gè)命令,一遍又一遍地鍵入或復(fù)制相同的命令會(huì)降低您的工作效率并分散您對(duì)應(yīng)該做的事情的注意力,這個(gè)時(shí)候我們可以通過(guò)為最常用的命令創(chuàng)建別名來(lái)節(jié)省一些時(shí)間,接下來(lái)將給大家介紹一下如何在Linux中創(chuàng)建和使用別名命令
    2023-07-07
  • bash腳本中if語(yǔ)句的使用方法

    bash腳本中if語(yǔ)句的使用方法

    與大多數(shù)語(yǔ)言一樣,bash 有自己的條件形式。在使用時(shí),要遵循以上格式;即,將 "if" 和 "then" 放在不同行,并使 "else" 和結(jié)束處必需的 "fi" 與它們水平對(duì)齊。這將使代碼易于閱讀和調(diào)試
    2014-05-05
  • linux 創(chuàng)建守護(hù)進(jìn)程的相關(guān)知識(shí)

    linux 創(chuàng)建守護(hù)進(jìn)程的相關(guān)知識(shí)

    這篇文章主要介紹了linux 創(chuàng)建守護(hù)進(jìn)程的相關(guān)知識(shí),需要的朋友可以參考下
    2014-01-01
  • linux下開(kāi)啟php的sockets擴(kuò)展支持實(shí)例

    linux下開(kāi)啟php的sockets擴(kuò)展支持實(shí)例

    下面小編就為大家?guī)?lái)一篇linux下開(kāi)啟php的sockets擴(kuò)展支持實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • 一個(gè)Shell小腳本精準(zhǔn)統(tǒng)計(jì)Mysql每張表的行數(shù)實(shí)現(xiàn)

    一個(gè)Shell小腳本精準(zhǔn)統(tǒng)計(jì)Mysql每張表的行數(shù)實(shí)現(xiàn)

    這篇文章主要介紹了一個(gè)Shell小腳本精準(zhǔn)統(tǒng)計(jì)Mysql每張表的行數(shù)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Linux實(shí)現(xiàn)定時(shí)備份MySQL數(shù)據(jù)庫(kù)并刪除30天前的備份文件

    Linux實(shí)現(xiàn)定時(shí)備份MySQL數(shù)據(jù)庫(kù)并刪除30天前的備份文件

    這篇文章主要介紹了Linux實(shí)現(xiàn)定時(shí)備份MySQL數(shù)據(jù)庫(kù)并刪除30天前的備份文件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • linux shell 中數(shù)組的定義和for循環(huán)遍歷的方法

    linux shell 中數(shù)組的定義和for循環(huán)遍歷的方法

    今天小編就為大家分享一篇linux shell 中數(shù)組的定義和for循環(huán)遍歷的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06

最新評(píng)論

萨迦县| 福建省| 屏山县| 茂名市| 上思县| 莱州市| 洛浦县| 陕西省| 三门峡市| 襄城县| 安义县| 青海省| 汝城县| 吕梁市| 宁阳县| 印江| 桐乡市| 龙南县| 乌苏市| 桦南县| 马尔康县| 新平| 黄骅市| 宁强县| 北川| 峨山| 元氏县| 汨罗市| 衡山县| 铜鼓县| 开原市| 翼城县| 巨鹿县| 灵武市| 剑河县| 柘城县| 富阳市| 永靖县| 盐津县| 大悟县| 景谷|