免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

grep、awk、sed 文本處理三劍客實(shí)戰(zhàn)指南:從會(huì)用到用透

grep、awk、sed 文本處理三劍客實(shí)戰(zhàn)指南:從會(huì)用到用透 文本處理三劍客的實(shí)戰(zhàn)拆解grep、awk、sed 到底該怎么用很多人第一次接觸命令行文本處理都是從一條grep開始的。查日志、篩配置、找報(bào)錯(cuò)一條命令下去屏幕上刷刷刷滾出結(jié)果那種感覺確實(shí)很爽。但真到了要批量改文件、做字段統(tǒng)計(jì)、按條件重組數(shù)據(jù)的時(shí)候光靠grep就不夠用了于是開始翻awk和sed的手冊結(jié)果被一堆$1、NR、s///g搞得頭暈。我見過不少同行這三個(gè)命令用了好幾年實(shí)際只會(huì)grep 關(guān)鍵字 文件和sed -i s/舊/新/g稍微復(fù)雜一點(diǎn)的需求就退回寫腳本效率白白丟掉一大截。這篇內(nèi)容就是想把grep、awk、sed這三個(gè)命令從“會(huì)用”拉到“用透”的層面。我不打算照著手冊逐條翻譯參數(shù)而是按真實(shí)工作里最常見的場景來拆怎么精準(zhǔn)篩選、怎么按字段做統(tǒng)計(jì)、怎么安全地批量替換。每個(gè)命令都會(huì)講清楚它解決什么問題、核心機(jī)制是什么、參數(shù)為什么這么選再配上可以直接復(fù)制運(yùn)行的實(shí)例。不管你是剛接觸命令行的新手還是已經(jīng)能寫點(diǎn) shell 但總覺得不夠利索的老手應(yīng)該都能從里面摳出幾招能馬上用上的東西。1. 先把三個(gè)命令的分工掰清楚在動(dòng)手之前有個(gè)認(rèn)知必須先建立起來grep、awk、sed不是三個(gè)可以互相替代的工具它們各自負(fù)責(zé)文本處理流水線上的不同環(huán)節(jié)。搞混分工是很多人用起來別扭的根源。1.1 三者的定位差異找、改、算用一句話概括grep負(fù)責(zé)找sed負(fù)責(zé)改awk負(fù)責(zé)算。grep的本質(zhì)是一個(gè)行過濾器。它逐行讀入文本判斷每一行是否匹配給定模式匹配就輸出不匹配就丟棄。它不關(guān)心行里面的結(jié)構(gòu)只關(guān)心“這一行整體符不符合條件”。所以它最擅長的事情是從一大堆內(nèi)容里撈出包含某個(gè)特征的行。sed的本質(zhì)是一個(gè)流編輯器。它也是逐行處理但它不只是判斷而是可以對(duì)匹配到的內(nèi)容做替換、刪除、插入、追加等編輯動(dòng)作。關(guān)鍵在于“流”字——它不需要把整個(gè)文件讀進(jìn)內(nèi)存再改而是一邊讀一邊改一邊輸出所以處理大文件時(shí)內(nèi)存占用很穩(wěn)。awk的本質(zhì)是一個(gè)字段級(jí)處理語言。它把每一行按分隔符切成若干字段你可以按字段做條件判斷、數(shù)值計(jì)算、格式化輸出還支持變量、數(shù)組、循環(huán)、函數(shù)。嚴(yán)格來說它已經(jīng)是一門小型編程語言了只是語法緊湊到可以寫成一行。理解了這個(gè)分工很多選擇就自然清楚了只是篩行用grep要改內(nèi)容用sed要按列統(tǒng)計(jì)或做復(fù)雜條件處理用awk。當(dāng)然實(shí)際工作中三者經(jīng)常串起來用管道一接各干各的活。1.2 為什么很多人只學(xué)會(huì)了 grep這里插一句觀察。大部分人卡在grep階段不是因?yàn)閍wk和sed難而是因?yàn)闆]有遇到非用不可的場景。日常的“找一下”需求grep確實(shí)夠了。真正逼著人往上走的往往是這幾類任務(wù)日志里按狀態(tài)碼統(tǒng)計(jì)次數(shù)、配置文件批量改某個(gè)字段、從結(jié)構(gòu)化文本里抽某幾列重排。這些任務(wù)用grep硬做會(huì)很別扭用awk或sed就是幾秒鐘的事。所以下面的內(nèi)容我會(huì)盡量從“什么場景下必須用它”切入而不是干講語法。語法查手冊就有場景判斷才是經(jīng)驗(yàn)。2. grep不只是“搜關(guān)鍵字”grep看起來最簡單但它的參數(shù)組合能玩出的花樣比想象中多。很多人只用過grep 關(guān)鍵詞 文件其實(shí)它的正則能力、上下文控制、文件級(jí)篩選都相當(dāng)能打。2.1 基礎(chǔ)匹配與正則的取舍最基本的用法不用多說grep error app.log這會(huì)在app.log里找出所有包含error的行。但這里有個(gè)容易被忽略的點(diǎn)默認(rèn)情況下grep用的是基本正則表達(dá)式BRE某些元字符需要轉(zhuǎn)義才能生效。比如你想匹配“以 error 開頭”的行寫grep ^error沒問題但想用、?、|這些擴(kuò)展元字符就得加-E切到擴(kuò)展正則ERE或者老老實(shí)實(shí)加反斜杠。我的建議是只要用到稍微復(fù)雜一點(diǎn)的正則直接上-E??勺x性好不容易因?yàn)檗D(zhuǎn)義漏寫而匹配錯(cuò)。對(duì)比一下# BRE 寫法豎線要轉(zhuǎn)義 grep error\|warning app.log # ERE 寫法清爽 grep -E error|warning app.log兩種都能跑但后者明顯更好維護(hù)。團(tuán)隊(duì)協(xié)作時(shí)別人讀你的命令不用在腦子里做轉(zhuǎn)義換算。還有一個(gè)高頻需求是忽略大小寫加-i即可。日志里Error、ERROR、error混著出現(xiàn)是常態(tài)不加-i很容易漏。grep -iE error|fail|exception app.log這條命令在實(shí)際排查問題時(shí)出場率極高一次把三類異常關(guān)鍵詞都撈出來。2.2 上下文參數(shù)-A、-B、-C 的實(shí)戰(zhàn)價(jià)值只輸出匹配行很多時(shí)候信息不夠。比如日志里報(bào)了一行NullPointerException你光看這一行根本不知道前面發(fā)生了什么。這時(shí)候上下文參數(shù)就派上用場了-A n輸出匹配行之后的 n 行After-B n輸出匹配行之前的 n 行Before-C n輸出匹配行前后各n 行Contextgrep -B 3 -A 5 NullPointerException app.log這條命令會(huì)把異常行前面 3 行、后面 5 行一起打出來通常足夠看清調(diào)用棧的開頭部分。我個(gè)人的習(xí)慣是排查異常時(shí)用-B 5 -A 10因?yàn)楫惓P畔⑼趻伋鳇c(diǎn)之后才展開前面幾行則是觸發(fā)條件。提示-A、-B、-C輸出的上下文行之間會(huì)用--分隔多個(gè)匹配塊不會(huì)糊在一起這個(gè)細(xì)節(jié)在結(jié)果很長時(shí)很有用。2.3 遞歸搜索與文件類型過濾在項(xiàng)目目錄里找某個(gè)函數(shù)在哪定義是日常高頻操作。-r遞歸搜索配合--include限定文件類型能避免把二進(jìn)制文件、日志、依賴目錄全掃一遍grep -rn --include*.py def process_data ./src這里-n是顯示行號(hào)定位問題時(shí)必不可少。--include支持通配符也可以寫多個(gè)。反過來還有--exclude和--exclude-dir用來排除node_modules、.git這類不該搜的目錄grep -rn --exclude-dir{.git,node_modules,dist} TODO .不加排除的話在大項(xiàng)目里搜一次可能要等十幾秒加上之后通常一秒內(nèi)出結(jié)果。這個(gè)差別在反復(fù)搜索時(shí)非常明顯。2.4 反向匹配與計(jì)數(shù)-v 和 -c 的組合拳-v是反向匹配輸出不包含模式的行。這個(gè)參數(shù)在過濾噪音時(shí)特別好用。比如看配置文件時(shí)想跳過所有注釋行和空行g(shù)rep -vE ^\s*#|^\s*$ config.conf^\s*#匹配以可選空白開頭后跟#的行^\s*$匹配空行-v把它們都排除掉剩下的就是有效配置。-c是只輸出匹配的行數(shù)不輸出內(nèi)容。它和-v組合能快速統(tǒng)計(jì)有效行數(shù)grep -vcE ^\s*#|^\s*$ config.conf再進(jìn)一步-o配合sort | uniq -c可以做詞頻統(tǒng)計(jì)。-o的意思是只輸出匹配到的部分而不是整行。比如統(tǒng)計(jì)日志里各狀態(tài)碼出現(xiàn)次數(shù)grep -oE status[0-9]{3} access.log | sort | uniq -c | sort -rn這條管道先抽出所有statusxxx片段排序后去重計(jì)數(shù)再按次數(shù)倒序排列。雖然嚴(yán)格說統(tǒng)計(jì)活是awk更擅長但grep -o這條路在臨時(shí)排查時(shí)寫起來更快。2.5 grep 的邊界什么時(shí)候該換工具grep的短板很明確它不理解字段結(jié)構(gòu)。一旦需求變成“第二列大于 100 的行”或者“按第三列分組求和”grep就無能為力了硬做只能靠一堆正則拼湊既脆弱又難讀。這種時(shí)候別硬扛直接換awk。同樣需要修改內(nèi)容時(shí)grep只能看不能改得交給sed。3. sed流式編輯的穩(wěn)與險(xiǎn)sed最出名的用法是替換但它能做的遠(yuǎn)不止替換。刪除行、插入行、按行號(hào)操作、多點(diǎn)編輯都是它的常規(guī)能力。不過sed也是三個(gè)命令里最容易出事的一個(gè)尤其是-i原地修改用不好會(huì)把文件改壞。3.1 替換命令 s 的完整語法拆解替換的基本形式是s/模式/替換內(nèi)容/標(biāo)志。很多人只知道s/舊/新/g其實(shí)標(biāo)志位和分隔符都有講究。先說分隔符。默認(rèn)用/但如果模式或替換內(nèi)容里本身含/比如處理路徑就得轉(zhuǎn)義很煩。這時(shí)候可以換分隔符sed允許用任意字符常見的是#或|# 處理路徑時(shí)用 # 當(dāng)分隔符避免轉(zhuǎn)義 sed s#/old/path#/new/path#g config.txt再說標(biāo)志位標(biāo)志含義使用場景g全局替換一行內(nèi)所有匹配都換一行可能出現(xiàn)多次目標(biāo)時(shí)無只替換每行第一個(gè)匹配明確只想改第一處時(shí)p打印匹配行常配-n只想看被替換的行i忽略大小寫GNU sed 支持大小寫混雜時(shí)數(shù)字 n只替換第 n 個(gè)匹配精確定位某一處g是最容易漏的。不加g時(shí)sed只替換每行的第一處匹配如果一行里有多個(gè)目標(biāo)后面的會(huì)被漏掉。這個(gè)坑我見過太多次——有人改完配置發(fā)現(xiàn)只改了一半排查半天才發(fā)現(xiàn)是漏了g。3.2 原地修改 -i 的正確姿勢與備份策略-i是原地修改直接把結(jié)果寫回文件。方便是真方便危險(xiǎn)也是真危險(xiǎn)——改錯(cuò)了沒有撤銷。所以我的習(xí)慣是永遠(yuǎn)帶備份后綴sed -i.bak s/old_value/new_value/g config.conf這樣原文件會(huì)被保存成config.conf.bak改壞了隨時(shí)能恢復(fù)。等確認(rèn)沒問題再刪備份。多花一秒鐘省掉可能的半小時(shí)。還有一個(gè)跨平臺(tái)差異要注意某些系統(tǒng)的sed -i要求后面必須跟一個(gè)參數(shù)哪怕是空字符串寫法是sed -i s/.../.../而 GNU 版本則直接sed -i s/.../.../。如果你寫的腳本要在不同環(huán)境跑這一點(diǎn)會(huì)導(dǎo)致命令直接報(bào)錯(cuò)。穩(wěn)妥的做法是先確認(rèn)目標(biāo)環(huán)境的sed版本或者在腳本里做兼容判斷。注意-i修改前務(wù)必確認(rèn)模式匹配范圍。一個(gè)寫得太寬的正則可能匹配到意料之外的行改完才發(fā)現(xiàn)問題就晚了。建議先不加-i跑一遍看輸出確認(rèn)無誤再加。3.3 按行號(hào)與模式刪除、插入、追加sed的刪除命令是d可以按行號(hào)刪也可以按模式刪# 刪除第 5 行 sed 5d file.txt # 刪除第 3 到第 8 行 sed 3,8d file.txt # 刪除所有空行 sed /^\s*$/d file.txt # 刪除包含 DEBUG 的行 sed /DEBUG/d file.txt插入用i在匹配行前插入追加用a在匹配行后追加# 在每個(gè) [section] 前插入一行注釋 sed /^\[.*\]$/i # ---- section start ---- config.ini # 在文件末尾追加一行 sed $a # end of file config.ini這里$表示最后一行。i和a后面跟的內(nèi)容如果含特殊字符建議用單引號(hào)包住整個(gè)腳本避免 shell 提前解釋。3.4 多點(diǎn)編輯與腳本化-e 和 -f當(dāng)需要一次做多個(gè)編輯動(dòng)作時(shí)用-e串聯(lián)sed -e s/foo/bar/g -e s/baz/qux/g -e /^#/d file.txt多個(gè)-e按順序執(zhí)行前一個(gè)的結(jié)果會(huì)作為后一個(gè)的輸入。如果編輯邏輯很長寫成腳本文件更清晰用-f引用# 把編輯規(guī)則寫進(jìn) rules.sed # s/foo/bar/g # s/baz/qux/g # /^#/d sed -f rules.sed file.txt腳本化還有個(gè)好處規(guī)則可以版本管理團(tuán)隊(duì)共享比每次手敲一長串命令可靠得多。3.5 sed 處理大文件時(shí)的內(nèi)存表現(xiàn)前面提過sed是流式處理逐行讀逐行輸出所以即使文件有幾個(gè) G內(nèi)存占用也基本恒定。這一點(diǎn)和“先讀進(jìn)內(nèi)存再處理”的方式有本質(zhì)區(qū)別。實(shí)際測試中處理一個(gè)幾百萬行的日志文件sed的內(nèi)存占用通常穩(wěn)定在幾 MB 級(jí)別速度也很快。但要注意-i原地修改時(shí)sed實(shí)際上是寫一個(gè)臨時(shí)文件再替換原文件所以磁盤上需要額外空間容納新文件。如果磁盤快滿了-i可能中途失敗。這種時(shí)候可以先輸出到新文件確認(rèn)后再手動(dòng)替換。4. awk字段級(jí)處理的真正威力如果說grep和sed是“行”級(jí)別的工具那awk就是“字段”級(jí)別的。它把每行拆成列讓你能按列做判斷、計(jì)算、格式化這是它區(qū)別于前兩者的核心能力。很多人覺得awk語法怪其實(shí)它的結(jié)構(gòu)非常規(guī)整模式 { 動(dòng)作 }模式?jīng)Q定哪些行參與處理動(dòng)作決定對(duì)這些行做什么。4.1 內(nèi)置變量$0、$1、NR、NF、FS、OFSawk的內(nèi)置變量是理解它的鑰匙先把這幾個(gè)吃透大部分用法就通了變量含義典型用途$0整行內(nèi)容輸出原始行$1~$n第 n 個(gè)字段按列取值NR當(dāng)前行號(hào)跨文件累計(jì)加行號(hào)、按行篩選NF當(dāng)前行的字段數(shù)取最后一列、判斷列數(shù)FS輸入字段分隔符指定按什么切列OFS輸出字段分隔符控制輸出格式舉個(gè)最直觀的例子打印文件的第二列和第四列awk {print $2, $4} data.txt默認(rèn)按空白空格或制表符切分。如果數(shù)據(jù)是逗號(hào)分隔的 CSV就要指定FSawk -F, {print $1, $3} data.csv-F是FS的命令行快捷寫法。也可以用-F \t處理制表符分隔的文件。NF有個(gè)經(jīng)典技巧取每行最后一列。因?yàn)樽侄螖?shù)不固定不能寫死$5但$NF永遠(yuǎn)指向最后一個(gè)字段awk {print $NF} data.txt倒數(shù)第二列則是$(NF-1)。這個(gè)寫法在處理列數(shù)不定的日志時(shí)特別順手。4.2 模式匹配與條件過濾awk的模式部分可以省略表示所有行也可以是條件表達(dá)式。比如只處理第三列大于 100 的行awk -F, $3 100 {print $1, $3} data.csv注意這里$3 100是數(shù)值比較awk會(huì)自動(dòng)把字段轉(zhuǎn)成數(shù)字。如果要字符串比較用或~正則匹配# 第五列包含 error 的行 awk -F, $5 ~ /error/ {print $0} data.csv # 第五列不包含 error 的行 awk -F, $5 !~ /error/ {print $0} data.csv~是正則匹配!~是反向。這個(gè)能力讓awk在篩選時(shí)比grep更精準(zhǔn)因?yàn)榭梢韵薅ā爸辉谀骋涣欣镎摇倍皇钦姓摇1热缛罩纠飁rror可能出現(xiàn)在消息正文里但你只想找狀態(tài)列是 error 的行用awk就能精確鎖定。4.3 統(tǒng)計(jì)求和、計(jì)數(shù)、求平均的寫法awk做統(tǒng)計(jì)是它的看家本領(lǐng)。求和awk -F, {sum $3} END {print sum} data.csv計(jì)數(shù)awk END {print NR} data.txtNR在處理到END時(shí)就是總行數(shù)所以這條命令等價(jià)于wc -l但awk還能順便做別的。求平均awk -F, {sum $3; count} END {print sum/count} data.csv按分組統(tǒng)計(jì)是更常見的需求。比如按第一列分組對(duì)第三列求和awk -F, {sum[$1] $3} END {for (k in sum) print k, sum[k]} data.csv這里sum是一個(gè)關(guān)聯(lián)數(shù)組鍵是分組名值是累加和。END塊里遍歷數(shù)組輸出。這個(gè)模式幾乎可以套用到所有“按某列分組做聚合”的場景改一下累加邏輯就行。再進(jìn)一步按分組求平均并保留兩位小數(shù)awk -F, {sum[$1] $3; cnt[$1]} END {for (k in sum) printf %s %.2f\n, k, sum[k]/cnt[k]} data.csvprintf的格式控制和 C 語言一致%.2f保留兩位小數(shù)。輸出對(duì)齊、格式統(tǒng)一時(shí)用它比print更可控。4.4 BEGIN 與 END 塊的使用時(shí)機(jī)awk的三個(gè)塊BEGIN、主體、END。BEGIN在讀取任何行之前執(zhí)行一次適合初始化變量、打印表頭END在所有行處理完后執(zhí)行一次適合輸出匯總結(jié)果。awk -F, BEGIN {print name,total} {sum[$1] $3} END {for (k in sum) print k , sum[k]} data.csv這條命令先打印表頭再輸出分組匯總結(jié)果直接就是一份可讀的報(bào)表。BEGIN里還可以設(shè)置FS、OFS比命令行參數(shù)更靈活awk BEGIN {FS,; OFS\t} {print $1, $3} data.csv這樣輸入按逗號(hào)切輸出用制表符分隔適合后續(xù)粘貼到表格軟件里。4.5 awk 與 grep、sed 的管道協(xié)作三者串起來用才是完整形態(tài)。舉個(gè)實(shí)際場景從日志里篩出錯(cuò)誤行提取時(shí)間戳和錯(cuò)誤碼再按錯(cuò)誤碼統(tǒng)計(jì)。grep -E ERROR app.log \ | awk {print $1, $5} \ | awk {count[$2]} END {for (c in count) print c, count[c]} \ | sort -k2 -rn第一步grep篩出錯(cuò)誤行第二步awk抽時(shí)間戳和錯(cuò)誤碼兩列第三步按錯(cuò)誤碼計(jì)數(shù)最后排序。每一步職責(zé)單一組合起來卻完成了相當(dāng)復(fù)雜的分析。這種“小工具串管道”的思路比寫一個(gè)大而全的腳本更容易調(diào)試——哪一步結(jié)果不對(duì)單獨(dú)跑那一步就能定位。5. 三個(gè)命令的選型判斷與組合套路學(xué)到這里語法層面基本齊了但實(shí)際用的時(shí)候還是會(huì)猶豫“這個(gè)需求該用哪個(gè)”。這一節(jié)把常見的判斷邏輯和組合模式整理出來相當(dāng)于一份速查。5.1 一張表看懂該用誰需求首選理由找包含某關(guān)鍵詞的行g(shù)rep行過濾是它的本職找某列滿足條件的行awk能定位到字段比整行匹配精準(zhǔn)批量替換文本sed流式替換大文件也穩(wěn)按列統(tǒng)計(jì)求和/平均awk字段級(jí)計(jì)算是它的強(qiáng)項(xiàng)刪除/插入特定行sed行級(jí)編輯直接支持多條件組合篩選awk支持邏輯運(yùn)算和正則遞歸搜目錄grep -r遞歸和文件過濾現(xiàn)成格式化輸出報(bào)表awkprintf控制格式判斷的核心就一句話看需求落在“行”還是“字段”上。行級(jí)篩選和編輯交給grep/sed字段級(jí)計(jì)算和條件交給awk。5.2 常見組合模式篩選-轉(zhuǎn)換-統(tǒng)計(jì)最經(jīng)典的三段式管道grep篩、sed清洗、awk統(tǒng)計(jì)。grep 2024- app.log \ | sed s/\[//g; s/\]//g \ | awk {print $2, $6} \ | awk {sum[$1] $2} END {for (k in sum) print k, sum[k]}這個(gè)模式的好處是每一步都能單獨(dú)驗(yàn)證。先跑grep看篩出來的行對(duì)不對(duì)再加sed看清洗結(jié)果最后加awk看統(tǒng)計(jì)。出問題時(shí)不用猜是哪一步的鍋。另一個(gè)常見組合是awk生成sed腳本做條件替換。比如只替換滿足某條件的行awk -F, $3 100 {print s/^ $1 /REPLACED/} data.csv fix.sed sed -f fix.sed target.txt先用awk根據(jù)數(shù)據(jù)生成替換規(guī)則再交給sed執(zhí)行。這種“數(shù)據(jù)驅(qū)動(dòng)編輯”的思路在批量處理時(shí)很有用規(guī)則不是寫死的而是從數(shù)據(jù)里算出來的。5.3 性能對(duì)比什么時(shí)候別硬用管道管道雖好但不是所有場景都適合。三個(gè)命令串起來意味著數(shù)據(jù)要經(jīng)過多次讀寫如果數(shù)據(jù)量特別大比如上千萬行管道開銷會(huì)累積。這種時(shí)候可以考慮用單個(gè)awk完成全部邏輯因?yàn)閍wk本身就能做篩選、轉(zhuǎn)換、統(tǒng)計(jì)awk -F, $3 100 {sum[$1] $3} END {for (k in sum) print k, sum[k]} data.csv一條awk頂替了grep | sed | awk三段少了兩輪數(shù)據(jù)傳遞。當(dāng)然可讀性會(huì)下降一些所以我的原則是數(shù)據(jù)量小、邏輯清晰時(shí)用管道數(shù)據(jù)量大、性能敏感時(shí)合并到單個(gè)awk。這個(gè)取舍沒有絕對(duì)標(biāo)準(zhǔn)跑一下time對(duì)比最直接。6. 踩過的坑與實(shí)戰(zhàn)心得語法和套路講完最后這部分是我在實(shí)際使用中攢下來的經(jīng)驗(yàn)有些是踩坑換來的有些是反復(fù)用之后總結(jié)的順手寫法。這些內(nèi)容手冊里不會(huì)寫但真正影響效率。6.1 正則轉(zhuǎn)義與特殊字符的連環(huán)坑grep、sed、awk三者的正則方言并不完全一致這是最容易出錯(cuò)的地方。grep默認(rèn) BREsed默認(rèn)也是 BREawk則更接近 ERE。同一個(gè)正則在不同命令里可能表現(xiàn)不同。舉個(gè)具體的在 BRE 里是普通字符要匹配“一個(gè)或多個(gè)”得寫\在 ERE 里才是量詞。所以grep a匹配的是字面的a而grep -E a匹配一個(gè)或多個(gè)a。這個(gè)差異如果不注意匹配結(jié)果會(huì)完全不對(duì)。另一個(gè)高頻坑是sed替換內(nèi)容里的特殊字符。替換內(nèi)容中表示“整個(gè)匹配”\1表示第一個(gè)捕獲組。如果你想替換成字面的得寫成\。比如把AB替換成AB本身直接寫s/AB/AB/會(huì)因?yàn)楸唤忉尪玫狡婀纸Y(jié)果正確寫法是s/AB/A\B/。提示拿不準(zhǔn)正則行為時(shí)先用echo 測試字符串 | grep/sed/awk ...小范圍驗(yàn)證確認(rèn)匹配范圍再上真實(shí)文件。這個(gè)習(xí)慣能擋掉大部分誤操作。6.2 大文件處理時(shí)的內(nèi)存與速度權(quán)衡處理大文件時(shí)三個(gè)命令的表現(xiàn)差異明顯。grep和sed都是流式的內(nèi)存占用穩(wěn)定awk如果用了關(guān)聯(lián)數(shù)組做分組統(tǒng)計(jì)內(nèi)存會(huì)隨分組數(shù)增長。分組數(shù)少比如按狀態(tài)碼分組就幾十個(gè)鍵沒問題但如果按用戶 ID 分組、用戶有幾百萬數(shù)組就會(huì)吃掉大量內(nèi)存。這種時(shí)候的應(yīng)對(duì)辦法是要么先sort再順序處理犧牲時(shí)間換內(nèi)存要么分批處理。我遇到過一次按請求 ID 統(tǒng)計(jì)的場景直接awk數(shù)組把內(nèi)存撐爆了后來改成先sort再逐段處理才穩(wěn)住。所以看到“按高基數(shù)字段分組”的需求心里要有個(gè)預(yù)警。速度方面grep通常最快因?yàn)樗蛔銎ヅ洳蛔鰟e的sed次之a(chǎn)wk因?yàn)楣δ芏鄦涡刑幚黹_銷略大但勝在一次能做完所有事綜合下來未必慢。具體場景跑time最靠譜別憑感覺。6.3 先預(yù)覽再落盤我的操作習(xí)慣這條是我最想強(qiáng)調(diào)的任何帶-i或重定向到原文件的命令執(zhí)行前先不加修改地跑一遍看輸出。# 第一步預(yù)覽確認(rèn)匹配范圍 sed s/old/new/g config.conf | grep -n new # 第二步確認(rèn)無誤再原地改且?guī)浞?sed -i.bak s/old/new/g config.conf多花這十幾秒能避免絕大多數(shù)“改錯(cuò)了文件”的事故。尤其是正則寫得比較寬的時(shí)候預(yù)覽能直接暴露“匹配到了不該匹配的行”這個(gè)問題。我見過有人一個(gè)s/.*/.../下去把整個(gè)文件改成一行的就是因?yàn)闆]預(yù)覽。6.4 把常用組合固化成小腳本反復(fù)用的命令組合值得固化成腳本或別名。比如我常用的“統(tǒng)計(jì)日志里各錯(cuò)誤碼次數(shù)”#!/bin/bash # errstat.sh - 統(tǒng)計(jì)日志中各錯(cuò)誤碼出現(xiàn)次數(shù) LOG_FILE${1:?請傳入日志文件路徑} grep -E ERROR|FATAL $LOG_FILE \ | awk {print $5} \ | sort | uniq -c | sort -rn存成errstat.sh加執(zhí)行權(quán)限以后./errstat.sh app.log一條命令出結(jié)果。比每次手敲管道快得多也不容易敲錯(cuò)。類似的還有“清理配置文件注釋行”“按列重排 CSV”等用順手了就固化下來日積月累能省下大量重復(fù)勞動(dòng)。我個(gè)人在實(shí)際操作中的體會(huì)是這三個(gè)命令的價(jià)值不在于語法多復(fù)雜而在于把判斷和操作拆得足夠細(xì)。grep只管找sed只管改awk只管算每個(gè)工具做一件事并做好再用管道串起來。真正熟練之后面對(duì)一個(gè)文本處理需求腦子里第一反應(yīng)不是“寫個(gè)腳本”而是“這條管道該怎么接”。這個(gè)思維轉(zhuǎn)變比記住多少參數(shù)都重要。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
激情久久久久久久久久| 人妻精品久久久久久久| 美女激情综合| 国精产品一区一区三区免费视频| 玖玖国产视频一区| 五月伊人网| 2013AV天堂| 六月丁香综合网| 天天干狠狠| 91精品又长又大又粗又爽又猛| 99热99免费| 久久九色| 99高级会所久久| 久久久久久久人妻| 亚洲成人色五月天| 粉嫩AV久久一区二区三区| 996热| www.婷婷,com| 99热免费精品| 开心深爱激情网| 超碰免费成人| 色五月在线观看| 五月天婷婷网站888| 99热这里只| 日本在线观看aaa 99| 亚洲五月天天| 久777| www.狠狠操.com| 韩国真做片在线观看| 在线视频色五月| 色婷婷久久| 久久久97| 欧美成人精品A片免费一区99| 一根材五月婷成人| 激情久久网| 婷婷五月天成人| www.日本91| 香蕉久久国产AV一区二区| 猫咪伊人久久| 婷婷97色| h在线看免费版在线看| 综合色影| 风流少妇A片一区二区蜜桃| 热久久视频99| 色婷婷四色| 99久re热视频精品98| 色五月aV| 婷婷终合色图| 97干在线| 五月天色社区| 久草 天堂| 色99网| 99热这里只有精品2016| 成人短视频在线| 青青草激情网| 亚洲美女网Va| 亚洲激情校园| 91大神在线免费看视频全集男男一起操| 婷婷五月色播放| 丁香五月天激情四射网| 99热热热99精品婷婷| 99色免费视频| 俺来也综合网精品一区| 国产性爱大片久久| 婷婷五月天色| 色丁香六月| 欧美激情 日韩无码 婷婷 五月天| 蜜桃人妻无码AV天堂三区| 只有精品视频在线观看| 九色91美女| 久久受www免费人成| 久久九九国产精品怡红院| 色五月xxx| 丁香色影院| 欧美交换配乱吟粗大25P| 五月丁香六月婷婷激情网| 国产精品噜噜在线视频| 婷婷成人综合| 大香蕉啪啪| 婷婷五月色播天| 丁香五月婷婷亚洲色图| 99免费视频网| 欧美日本综合网| 欧美婷婷色| 激情五月天综合| 丁香五月婷婷狠狠色| 婷婷色基地在线看 | 日韩成人精品中文字幕| 狠狠爱丁香婷| 日本狠狠干| 丁香婷婷五月基地| 激情网开心网| 天天日天天添| 92国产福利| 99视频免费播放| 99综合网| 激情综合五月| AVDV久久| 色色无码| 丁香五月婷婷五月| 久久九九99| 日韩淑女人妻luan伦激情精品一区二| 狠色狠色综合久久| 超黄亚洲瑟瑟网站| 久热九九| 俺来也综合网精品一区| 综合玖玖性爱免费视频| 色色日韩网| 97操在线视频| 狠狠搞五月天| 亚洲综合网区| 六月婷婷天天操夜夜爽视频| 婷婷99狠狠| AV在线中文| 超碰在线中文字幕| a片在线免费观看一区| 欧亚成人A片一区二区| 天天色天天| 久久久人妻| 五月婷婷婷婷| 久久婷婷色综合| 色五月婷激情| 伊人综合网4| 成人 在线 日韩| 精品99在线| 国产AV不卡福利| 丁香五月婷婷天堂大香蕉| 免费99色| 九九亚洲综合| 天堂AV三级| 亚洲一个色| 婷婷伊人| 天天天添天天操| 婷婷五月天日逼| 久久这里只有精品07| 亚州欧美国产久精国产99综合视频| 丁香婷婷六月婷婷六月婷婷六月婷婷| 亚洲日韩26uuu| 久久只有精| 亚洲小视频免费观看| 五月丁香婷婷无码中文| 五月天激情AAAA| 久热只有这里精品| 在线中文亚洲| www.婷婷| 欧美激情性做爰免费视频| 激情五月天婷婷| 色婷婷成人做爰A片免费看网站| 五月天激情小说网| 98国产精品综合一区二区三区 | 成人五月天婷婷| 五月丁香五月丁香| 激情网婷婷婷| 国产欧洲欧洲精品久久| 丁香婷婷激情五月天无毒不卡蜜桃| 可以直接看的AV网站| 久久一二三视频| 久久亚洲色导航| 五月婷婷黄色视频| 五月丁香六月天| 91九色国产| 最新色色五月天| 五月天婷婷操逼视频| 99亚洲精品| 九九亚洲视频| 激婷网| 六月综合婷婷开心伊人| tingtingjiqingwuyue| 天天干-天天日| 很很干天天干| 亚洲综合五月天| 婷婷五月天国产性感美女演员久久久久| 欧美槡BBBB槡BBB少妇| 五月天久久色| 人人操 色| 伊人九九综合| 五月丁香成人| 99自拍视频网站| 亚洲激情四射| 狠狠干综合网| 色色色色色色综合| 色婷五月天| 无码操B| 9热网站| 香蕉视频91| 丁香香五月激情免费视频| 丁香六月亚洲综合| 99无码精品| 色色六月| 国产成人VA| 蜜臀嫩草| 久久曰曰| 99啪视频在线观看| 五月深爱婷婷| 91Chinese在线| 丁香六月啪啪| 站长推荐无码播放| Www,五月天| 97碰人人操| 99热在线看| 天啪天啪天啪天啪| 天天射射夜| 五月精品| AV网址大全在| 亚洲综合视频天天精品| 91.com男女操| Blackedraw视频一区二区| 激情綜合網址| 无码任你操| 在线播放中文字幕| AV在线免费网站| 99热99日…..| 色色五月天激情| 操比激情五月| 五月丁香狠狠地噜噜噜噜| 99热超碰| 91久久精品无码一区二区三区| 亚洲五月天婷婷在线| 99视频精品在线| 五月婷婷七月丁香| 丁香五月天五码婷婷| 五月天激情影院| 第四色色六月色综合| 亚洲sesesese| 激情六月婷婷| 久久婷婷五月天激情四射| 66精品国产成人| 欧美婷婷精品激情| 人人操婷婷| 婷婷五月天激情在线观看 | 天天射影院| 99riAV成人在线视频| 五月丁香激情片| 婷婷久久丁香五月| 天天干天天操天天射| 日日爽天天| 色婷婷成人做爰A片免费看网站| 色色吧综合| 色婷婷成人| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 九九99九九99九九99视频网| 丁香 亚洲 久久| 岛国av电影网站| 国产精品人成A片一区二区| 婷婷色色五月天| 色热久| 久久婷婷的综合色丁香五月| WWW激情五月天| 婷婷五月天在线观看| 色色免费网站| 日日色综合| 日本美女上人| 超碰成人免费| 五月丁香久久网| 激情五月婷婷网| 久婷婷| 亚洲在线操| 婷婷七月丁香色色| 人人人操| 天天综合情| 99啪啪视频| av在线中文| 日本狠狠干| 97婷婷在线视频| 可以看的AV网站| 免费V片在线| 色亭亭五月天网扯| 91九九九色在| 天天做天天爽| 久热无码| 粉嫩AV久久一区二区三区| 五月天激情在线视频| 综合色99| 人人看人人草人人摸| 免费看欧美成人A片无码| 色色色色欧洲| 亚洲国产精品二二三三区| 少妇日麻屄| 黑人糟蹋人妻HD中文字幕| 精品国产va久久久久久久| 精品国产乱码久久久久夜深人妻| 激情五月四色| 成人在线综合| 另类天堂| 色综合色综合色综合| 色爱综合五月| 色色综合网站| 26uuu激情五月天| 七月丁香五月婷婷在线| 丁香婷五月天开心六月| 新久久五月天激情| www.夜夜爱.com| 丁香五月六月综合欧美| 久操热| 思思热在线视频精品| 亚洲性爱99在线| 丁香婷婷六月| 超碰chaompinm| 99久久国产宗和精品1上映| 国产一级片色色| 狠狠做深爱婷婷久久综合一区| 色日本综合| 伊人激情| 色婷婷五月天天天干天天操天天爽| 丁香花婷婷五月天| 五月激情小说| 综合色色色色色色| 色欲影香| 中字幕视频在线永久在线观看免费| 婷婷六月伊人| 爱射综合| 99视频综合网| 久久人人妻| 九九热在这里只有精品| 日本视频99| 色色国产| 亚洲av日韩无码| 亚洲中文无码成人| 五月婷婷成人| 狠狠色色色| 人人草人| 亚洲中文无码成人| 夜夜大香蕉婷婷丁香| 成人丁香五月| 婷婷爱五月| www.91.com处女在线直播| 97色射| 欧美大道不卡| 公的粗大挺进了我的密道| 丁香五月天AV| 最新激情五月天| av五月丁香| 色综合激情| 久8色色| 99久久婷婷国产综合| 五月天婷婷综合色| 婷婷丁香五月综合| 五月激情六月综合| 最新五月天婷婷影| aaaaa黄色| 色五月天成人| 日本黄色一级| 久久这里都是精品免费| 久青草大香蕉| 日韩一区二区A片免费观看| 看片视频在线免费日产在线看| 五月天婷五月天综合网在线观| 碰碰操91| 婷婷五月成人社区| 欧美黑人巨大性生话| www.99日本| 天天射综合网天天插| 色婷婷www| 在线不卡AC| 五月天成人综合| 亚洲无码99| 五月天婷婷伊人| 狠狠搞五月天| 五月丁香色色| 日本3级片一区2区| 亚洲视频在线网| 五月激情小说| 五月丁香六月婷| 五月丁香色婷婷色| 五月综合激情视频在线| 丁香五月五婷| 久久久99精品| WWW五月天| 九九九色综合| 丁香婷婷色情| 国精产品一区二区三区| 综合久久综合五月天婷婷| 九九热视频在线观看| 另类综合激情| 9l视频自拍9l视频自拍九色学生| 人妻久久久久久久 | 色婷婷亚洲综合天堂| 五月婷色| 五月丁香狠狠爱| 久久综合爱| 深爱激情五月网| 丁香六月婷婷姐网| 欧洲第一久色| 色色cOm| 丁香六月视频免费观看| 色情激情五月| 五月涩涩网| 激情伊人五月婷婷久久| 丁香婷婷少妇| 深爱丁香激情| 99这里是精品| 色五月激情五月天| 五月天色婷婷综合| 天天爱天天狠天天透| 亚洲狠狠干| 99精品免费欧美小视频| 激情五月婷婷丁香| 狠狠狠狠狠狠| 五月婷婷中文字幕| www99热| 91热99| 超碰chaompinm| 色~性~乱~伦~噜| 任你日视频| 开心五月综合激情网| 成人一级片| 色射影院| 99操碰| 午夜不卡久久精品无码免费| 香蕉久久国产AV一区二区| 亚洲成av人影院| 亚洲精品V天堂中文字幕| 精品一二三区久久AAA片| 操91| 免费在线观看av网站| 91干99| 日韩成人综合| 九九热av| 五月情四婷婷| 亚洲夜夜操| 精品久久66| 婷婷五月天无码| 九九热视频在线观看| 91色涩| 婷婷伊人綜合中文字幕小说| 欧美成人AAA片一区国产精品| 国产一区二区av免费| 五月婷婷综合成人| 91丨九色丨熟女|老版| www.色五月.com| 五月丁香六月婷婷综合在线| site:ornaments52.com| 91大屁股精品| 丁香六月婷婷| 五月桃花网综合| 操婷婷久久| 欧美精品啪啪| 俺五月| 五月天色丁香| 丁香五月天啪啪| 麻豆AV一区二区三区| 九九伦子片| 国产精品色婷婷99久久精品| 亚洲avjiujiur91| 五月天堂在线| 精品久久9| 最近中文字幕在线中文视频| 密视AV综合在线| 亚洲综合无码| 天天天天天操| 射久久丁香五月| 亚州操人在线视频| 九九热狼人| 桃色激情五月天| 午夜丁香丁香婷婷| 日本色色色| 综合色99| 中文字幕91,综合| 九九精品网站| www.五月天激情| 五月丁香| 欧美A A A A A| 九九99九九99偷拍视频免费看| 成年AAAA色情| 99久精品视频| 琪琪色网在线| 亚洲综合视频在线| 综合婷婷五月丁香在线观看| 五月丁香婷婷基地| 五月情涩综合婷婷| 天天更新天天亚洲| 在线视频另类| 久久99免费视频网站| 久久精品婷婷| 色99网| 99热这里只有精| 久久久久久18| 涩涩涩婷婷| 9l视频自拍9l视频自拍九色学生| 1级欧美日韩| 色,激情五月天| 人人爱国产| 亚洲1区| 婷婷色片| 丁香五月五月婷婷五月天激情四射| 强伦轩人妻一区二区电影| 婷婷色色色| www色婷婷久久综合久色| 婷婷丁香小说| 久草婷妨| 色 五月俺去也| 国产亚洲在线观看| 色女人久久| 天天爽夜夜爽天天爽夜夜爽| 极品人妻VIDEOSSS人妻| 大香蕉久久| 五月色综合| 另类丁香五月天区图| 99色视| 991国产精选视频在线播放下载| 久久大香蕉丁香| 久久视这里只有精品| 丁香六月激情| 亚洲AV电影av| 婷婷五月六月激情| 嫩草AV久久伊人妇女超级A| 五月天激情影院| 俺也去在线视频| 青青久在线视频免费观看| 99啪啪视频| 狠狠干综合| 丁香五月婷婷五月基地| 亚洲第一视频 久久| 思思99热| 97丁香花五月天激情小说| 色色色色五月天| 4399在线观看免费毛片| 天天精品视频免费观看| 狠狠色丁香久久综合婷婷亚洲成人福利 | 日本WWW九九九| 国产五月天欧美色| 激情五月婷婷色色| 国产资源91在线| 亚洲欧洲另类图片| 婷婷四色五月| 另类五月激情| 色婷婷激情五月天在线观看| 182.t午在线观看| 东北婷婷五月天| 激情五月天婷婷| 五月天婷亚洲天综合网综合| 五月丁香六月| 五月婷婷深深爱爱| 国产毛片精品一区二区色欲黄A片 极品人妻VIDEOSSS人妻 | 美女久久婷婷| www五月天激情com| 中文字幕丰满乱孑伦无码专区| 九九视频精品在线免费| 九九九激情综合| 国产精品色色色色| 国产一级黄色影片,| 校园激情 亚洲| av操逼网| 色婷婷五月中文字幕在线dvd| 国产九月婷婷| 久久 天天| 九九干视频| 午夜九九九九九九九九九九九九九| 99超碰人人| 色五月婷婷影院| 欧美在线97| 99re免费精品视频| 色婷婷综合久色AV五色最新| 国产亚洲成AV人片在线观黄桃| 激情亚洲五月| 婷婷五月开心六月AV| 热99这就是精品视频| 99精品超在线播放| 九热视频| 日在线V视频在线播放| 天天日天天久久青青| 五月婷婷狠狠干| 99在线综合视频| www.婷婷| 五月婷婷开心亚洲无| 五月婷婷激情综合| 五月天色婷婷网| 色婷婷色| 激情五月天婷婷五月天| 岛国av网| 色五月婷婷激情基地| 五月丁香啪啪啪综合网| 99小精品| 国产三级在线播放| 亚洲精品国产成人AV在线| 久久色五月天| WWW、99热| 婷婷六月色开 | 日本色爽| 玖玖伊人网| 五月综合视频| 色色色色色级无码| 色九月丁香婷婷蜜桃在线观看| 丁香久久久| 久久婷婷五月天激情新地址| 99国产99| 操一区| 无码激情精品色婷婷久久久久| 色拍九九九| 五月天堂婷婷| 99热日| 五月丁香综合影院| 99色在线| 激情五月天偷拍综合网| 丁香五月综合色婷婷| 99re资源在线视频导航| 久久停停超碰| 亚洲第一视频 久久| 五月婷婷色播| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 欧洲毛片基地c区| 国产无遮挡又黄又爽免费网站| 天天色天天日| 六月丁香五月亭亭| 色碰干| 嫩草极品| 久操大香蕉| 五月情涩综合婷婷| 丁香六月激| 亚洲av无码影院| 女人天堂AV| 天天操天天操天天操天天操天天操| 99 热| 综合久久伊人| 风流少妇A片一区二区蜜桃 | 99热九九热| 亚艹艹| 99色精品视频| av在线播放网址| co超碰在线观看| 97人人操人人爽| 婷婷五月天偷拍| 99色视| 日韩美女羞羞网站在线观看| 9色91视频| 91爱啪啪| 亚洲激情网| 五月丁香啪啪啪啪| 婷婷她六月天| 91视频五月丁香| 丁香六月婷婷操逼网| 99热这里只有精品8| 日日操天天操| 99色最新在线视频网站| 久久精品国产色| 日本三级中国三级99| 99久久五月婷婷| 国产精品VIDEOSSEX久久发布| 日本在线视频播放91| 婷婷色欧美激情| 婷丁香五月天| 久久精品爱爱| 成人欧美日韩| 激情五月综合久久| 丁香婷婷婷婷十二月在线观看视频| 五月综合激情| jiZZdr| 五月婷精品| 狠狠色综合网| www.国产色| 久久欧洲综合网| 成人婷婷五月天| 综合激情伊人影视在线| 中文字幕av在线| 99久久97久久欧美综合网| 99在线免费视频播放| 九九亚洲天堂| 无码日本精品XXXXXXXXX | 天天色天天| 色婷婷网| 久久色区| 美日韩成人| 婷婷丁香激情综合色情| 99riAv1国产在线观看| 天天摸天天舔| 欧美丁香五月夫妻天| 日本色色视频| 日本久久爱| 日本 @ va 免费| 思思热再线视频| 天插天啪天啪天啪| 精品怡红九九九| 婷婷丁香亚洲五月天| 亚州视频九九99| 五月色导航| 婷婷深爱色五月| 涩涩五| 先锋男人99资源| 天天综合五月| 天天肏天天爽夜夜爽| 六月五月婷婷| 激情网婷婷婷| 26uuu最新地址| 综合网天天| 日本在线99| www.婷婷六月天| 五月丁香影院| 五月天色色网站| 欧洲色区| 1024欧美看片| 人碰91| 激情久久久久久久久| 欧美激情综合色综合啪啪五月| 久久久.COM| 五月天婷婷色| 五月天色官网| 婷婷干五月综合在线播放| 亚洲日日日| 色香久久| 久热这里只有| 99原创自拍视频在线观看| 91黄色五月天视频| 九九久久高清| 99热精品在线| 99日本黄站| 色六月天天激情综合网| 色狠狠图片| 久久婷婷成人综合色怡春院| 五月久久婷婷| 五月丁香成人网| 激情婷婷五月丁香啪啪啪| 久久性爱激情| 欧美久久婷婷| 五月婷婷久久综合| 这里有精品2| 激情婷婷丁香五月天| 久久综合婷婷| 伊人激情网| 色婷婷免费观看| 婷婷五月天直播| www夜夜操comwww| 亚洲天堂啪啪| 久久久99精品免费观看| 91九色PORNY中文啦| 狠狠丁香| 人人操人人爱丁香五月| 伊人狠狠丁香婷婷综合尤物| 国产又黄又爽又色的免费| 色综合9| 亚洲精品无码久久| 五月婷婷久久网| 99国产精品久久久久久久久久久 | 五月开心深深爱激情综合| 激情人妻综合| 中文字幕精品无码一区二区| 在线视频激情网站| 99成人网站| 国产密乳av一区二区三区四区| 大香蕉综合网| 色婷小说| 婷婷五月色播网| 大陆肏屄视频| 丁香五月电影| 五月婷婷丁香综合,亚洲天堂| 91蜜桃婷婷狠狠久久综合9色| 婷婷丁香五月天亚洲| 超碰免费99| 欧美综合五月天婷婷tin| 日本一级特黄大片AAAAA级| 五月婷婷香蕉| 色五月色五天色情网| 色就色94欧美setu| 五月丁香美女视频| 97热这里只有精品| 69精品人人人人| 97影院一级片| 婷婷五月天堂一本在线| 激情婷婷五月天| 亚洲色婷婷五月天| 99福利视频| 狠狠干无码| 男人天堂 久久| 丁香色啪综合| 欧美日韩成人在线| 97日本在线| 99re思思热这里| 色综合色色| 欧美日本高清视频99| 欧美综合激情五月丁香| 日韩无码专区| 大香蕉狠狠爱主页| 五月婷婷九| 亚洲色婷婷| 超级碰碰碰97免费| 黄色AAAAA| 丰满少妇猛烈A片免费看观看| 67194成I人在线观看线路1| 五月花激情| 久色精品| 亚洲性爱99| 丁香婷婷性爱| 婷婷五月天中文字幕| 婷婷五月骚厕所| 欧美人与性动交CCOO| 99精品在线播放| 五月欧美丁香在线观看| 色天使久久综合| 丁香五月98| 99热6精品| 色综合大香蕉| 天天人人人人人人人人人人人| 色色丁香婷婷五月天| 五月婷色丁香| 欧美交换配乱吟粗大25P| 另类视频综合| 99自拍视频网站| 激情九九六月激情免费视频| 五月天综合婷婷| www.99色在线| 色情免费视频播放| 久久久天堂国产精品女人| 免费日韩99| 日日日日日| 欧美噜噜噜草| 婷婷五月六月| 五月天激情综合在线| www婷婷| 丁香婷婷色| 五月天丁香婷| 99亚洲视频| 婷婷激情五月| 成人午夜免费电影| 天天草天天爽| 九九热在线99| 婷婷情色五月天| 亚洲色图45p| 大香蕉天堂| 黄色成人网站在线播放| 激情综合网五月| 久久电影4399| 99综合在线| 91超级碰| 天天综合精品| 亚洲激情无码久久| WWW.桔色成人.COM| 色五月婷婷激情五月| 午夜天天精品视频| 色狠狠综合| 五月色亭丁香| 婷香五月激情视频| 99色日本| 97操在线视频| WWW.天天日| 人人操av| 九九色99| 婷婷五月激情视频网| 丁香五月婷婷网| 熟女网站久久| 五月花激情| 这里只有精品视频国产| 亚洲第一成人无码A片| 婷婷伊人久久综合| 亚洲成人无码免费| 香蕉婷婷色五月| www.99视频| 天天爽天天爽| 亚州AV超碰人人操| 综合激情在线观看| 婷婷五月激情网| 激情婷婷内射| 婷婷伊人五月天| 国产日韩欧美| 欧美色图天堂网色| 色五月五月婷婷| 色婷婷国色天香综合| 91a片爽| 色爱99| 97精品综合久久| 亚洲日韩一页精品发布| 婷婷五月视频| 五月婷婷中文字幕| 亚洲色五月| 狠狠色丁香久久婷婷综合五月| 99九九热视频免费| www色色com| 色青青五月| 日韩三级视频一区二区| 色噜噜狠狠色综合成人网| 五月婷婷在线短视频| 日韩av变天就操逼不卡区| 久久这里只有精品热在99| 91丨九色丨熟女高潮| 国产黄色在线观看| 五月天狠狠色| AV天堂淫乩| 丁香花操逼| 婷婷综合五月| 婷婷五月天色| 色婷婷五月天中文字幕| 99色热综合| 91人人网| 五月天激情婷婷丁香| 色www.con| 99热这里只有精品8| 夜夜夜夜撸夜夜操| 五月色婷婷亚洲 | 97色综合视频| 久久六月综合| 五月丁香操亭亭网| 激情婷婷| 色色色五月天激情资源| 99热在线播放| 丁香婷婷深情五月亚洲| 婷婷五月天奸女| 激情婷婷五月丁香啪啪啪| 久婷婷婷| 日日狠夜夜狠| 日本高清久久| 91精品久| 亚洲久热| 九月激情综合| 欧美综合五月丁香五月天| Caop在线| 国产看真人毛片爱做A片| 超碰在线观看9| 久久久久99精品成人片| 99热老司机| 91怕怕网| 大地9中文在线观看免费高清| 超碰97免费在线| 婷婷亚洲五月色综合| 久久婷婷亚洲| 色射7856五月天激情四射| 天天日天天爽| 99资源在线视频| 亚洲一区二区无码蜜乳av| 色吧五月婷婷| 丁香亚洲色综合| 色五月亚洲| 婷婷五月天奸女| 99亚洲日韩| 婷婷五月天激情偷拍| 日本久久婷婷| 丁香五月婷婷激情中文| 国产亚洲精品久久久久久豆腐| 狠狠爱婷婷爱| 欧美婷婷五月丁香| 五月婷婷熟女| site:xmssd.com| 婷婷激情六月综合| 涩婷婷视频快播人妻| 欧美交换配乱吟粗大25P| 中文无码婷婷| 五月精品| 五月天综合在线观看| 五月婷综合性中心| 五月丁香婷婷网网网网| 久草视频一,二三四| 五月丁香婷婷老司机| 亚洲精品国产A久久久久久| 五月天婷婷基地| 五月丁香琪琪| 操一操干一干| 日日噜狠狠色| 婷婷香五月综合激情| 综合激情网| 久久婷婷六月| 狠狠综合| 操一区| 激情六月丁香| 欧美久久网| 五月天停婷基地| 五月婷婷 自拍| 久久这里只有精品视频15| 丰满少妇乱A片无码| 亚洲va成人va成人va在线观看| 91精品婷婷国产综合久久| 激情五月天婷婷| 天天日综合| 思思热久热| 欧美日韩AAA| 激情五月,深深爱五月| 婷婷五月精品在线| 五月天婷婷青青| 丁香婷婷丁香五月欧美人| 久久婷婷五月国产色综合激情| 久久久18| 色狠狠五月天| 丁香五月天激情网址| 国产免费一区二区在线A片视频| 亚韩在线视频| 爆乳熟妇一区二区三区爆乳照片| 超碰99热精品| 91精产品自偷自偷综合| 婷婷五月丁香超碰| 爆乳熟女一区二区三区爆乳| www.97干视频| 丁香五月AV| 香蕉婷婷色五月| 91大神操美女| 六月丁香久久| 99re思思| www.狠狠干| 色婷五月| 激情内射p| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 另类专区在线| 亚洲视频99| 超碰在线成人| 中文字幕精品无码一区二区| 婷婷丁香日韩五月| 五月婷无码| 一区=区操屄高清大全av| 婷婷五月天天激情| 色综合久久综合| 九热视频在线精品15| 五月婷婷黄色| 五月丁香美女| 久久成人综合五月天| 五月永久激情| 久久婷婷五月综合伊人| 五月天色区| 婷婷五月色综合| 色婷婷影院| 亚洲va综合va国产va中文| 日本三级成人秘书精品片| 中文字幕人妻一区二区| 色色婷婷色色| 秋霞A V毛片| 六月丁香婷婷综合色播| 婷婷五月天亚洲激情戏精品| va亚洲中文在线| 久re热视频| 天天插天天插天天插天天插| 国产毛片精品一区二区色欲黄A片| 亚洲天堂婷婷| 婷婷大乡焦噜噜| 99综合| 婷婷激情综合网| 五月花在线观看视频| 色婷婷伊人| 久久xx| 婷婷五月综合免费在线| 夜夜资源站| 五月天免费色| 天天激情| 国产午夜一区二区三区| 亚洲深喉aV| 久七香蕉| 人妻性爱| 丁香六月成人| 五月丁香啪啪综合| 五月天婷婷综合色| 在线观看亚洲视频影院| 久久久久久草黄色片AV在线观看| 国内精品玖玖| 五月婷婷三级| 天堂伊人干| 4399在线观看免费高清黄色视频| 夜夜人妻五月天| 91精品久久久久久综合五月天| 中文字幕av在线| 日本欧美成人片AAAA| 九色在线观看91av| 色色色综合视频| 色播五月| 久久97| 香蕉乱插| 色婷婷丁香五月观看| 天天综合网站| 北京熟妇搡BBBB搡BBBB| 大香蕉狠狠爱主页| 婷婷激情五月天在线视频| 天天艹夜夜艹| 白人荫道BBWBBB大荫道| 琪琪色热色色| 热99re| 午夜大香蕉| 色婷婷AV久久| 五月天天天综合| 五月天色区| 中文字幕丰满孑伦无码专区| 国产日韩av片| 99re思思精品在线观看| 婷婷五月天综合网| 欧美色必爱| 婷五月天天| 可以免费观看的AV| 亚洲深喉aV| 日韩啪啪网| 538在线精品| 成熟妇人A片免费看网站| 26UUU欧美激情一区二区| 久99久热只有精品国产99| 99热婷婷| 91丨九色丨国产在线| 色五月丁香激情| 9久久精品| 丁香五月九九| 丁香五月婷婷亚洲另类| 色99网站| 婷婷综合影院| 色欲资源网| 五月色网| 97性视频| 99热6这里只有精品| 香蕉AV777XXX色综合一区| 中文字幕av久久爽一区| 开心色五月天久久久久久久| 专区无日本视频高清8| 大香蕉婷婷丁香视频在线| 天天插综合| 日曰躁夜夜躁2026| 色色无码日韩| 婷婷六月激情| www.激情五月天.con| 婷婷中文字幕版| 六月激情综合| 99久久久久久| 婷婷激情图片| 婷婷丁香五月天之开心少妇| 激情综合五月色在线| 激情综合亚洲| 色99自拍| www.婷婷五月天,com| 久久色五月| 狠狠干综合| 色五月六月婷婷| 欧美色色色| 丁香五月婷婷啪啪| w婷婷五月婷婷w| 久久只有这里精品免费| 人妻久久婷婷| 97久久五月丁香婷婷| 五月丁香啪啪伦理电影| 天堂在线伊久| 深爱五月亚洲| 国产成人精品一区二区三区视频| 亚洲精品乱码久久久久久按摩观| 激情久久综合| 九色七七| 丁香五月色五月| 五月丁香婷婷婷激情爱爱| 色五月婷婷综合| 免费观看日韩成人av| 一本综合丁香日日狠狠色| 99ER热精品视频| 婷婷开心青青草| 大地9中文在线观看免费高清| WWW夜夜| 天天日夜夜| 狠狠色丁香久久久婷| 天天狠狠夜夜狠狠2023| 无码se| 亚洲无码99| 天天五月香欧美| 日韩成人免费电影| 久久亚洲网| 国产成人精品亚洲线观看| 亚洲天天免费| XX色综合| 伊人五月天婷婷| 97婷婷五月丁香| 婷婷六月久久综合导航| 91在线观看www| 天天射天天射一道本日本社区| 色欲婷婷五月天丁香| 免费成人网在线观看| 婷婷网五月天| 日本3级片一区2区| 國語久久婷| 99色婷婷| 99精品在线观看| 91dy.av| 婷婷五月天桃花网| 俺也高清无码高清视频| 久久色吧| 成人综合视频在线| www.99久| 久久久久婷婷| 丁香五月综合图片在线观看| 五月丁香色停停啪啪啪| 天天日日夜夜爽。| 久久超级碰视频| 色综合色五月| 婷婷五月亚洲激情| 99免费超碰在线| 夜夜综合色| 铁牛TV人妻| 99色热| 色五月天中文字幕| 国模狼狼| 亚洲成人av在线播放| 人人操AV| 99在线免费视频| 久久这里只有欧美| 丁乡久久| 开心五月深爱五月| 337p午夜影院| 爱狠射| 亚洲精品99| 五月婷婷六月丁香综合视频在线| 婷婷五月丁香综合亚洲| 99热都是精品| 亚洲操人| 九九热123| 色5月丁香婷婷| 9.1综合网| 丁香激情综合| 99狠狠操一| 丁香五月天色| 色婷婷精品视频在线播放| 香蕉国产2013| 婷婷综合网在线| 日本nghangse中文字幕| 五月婷婷啪啪啪| 天天日日天天| 久久综合五月| 九九热在线视频| 人人草人人视| 婷婷九月丁香| 国产成人综合亚洲| 五月丁香综合影院| 欧美色色色色色色色色色色影视| 日噜噜色| 六月婷婷开心| 开心婷婷五月中文字幕组| 99在线视频色版| 丁香8月手机综合| 色婷婷888| 深爱五月天 开心网| 婷婷综合色网| 免费无码毛片一区二区A片| 99综合| 五月婷婷就去色| 波多野结衣AV无码Porn| 国产亚洲精品久久久久久豆腐| 色99在线视频| 梁铮版蜘蛛女在线观看| 99热一本久道| 国产69久久久欧美黑人A片| 综合婷婷五月天| 激情综合色五月六月婷婷| 99啪啪网| 色情终和网| 超碰人人草| www天天爽| 九九成人高清视频| 2020日日干| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 五月天激情美女久久| www.激情| 涩 五月 婷婷 狠狠| 三男玩一女三A片| www久久久久久久97| 婷婷五月天另类网站| 欧美激情五月综合| 综合网啪| 久久婷综| 激情综合婷婷| 久久久27操| 人人操人av| 欧美天天爽| 丁香九月综合激情| 丁香婷婷六月| 亚洲精品字幕在线观看| 五月丁香亭亭操逼| 在热视频精品| 成人五月天在线视频在线观看| 99热碰碰热| 五月婷婷,六月婷婷| 香蕉AV777XXX色综合一区| 五月丁香狠狠爱| 天天综合网在线| 午夜激情五月| 九九sese| 亚洲超碰在线| 成人视频在线免费播放| 丁香五月婷婷综合激情哟哟哟| 天天日夜夜| 九九热视频精品| www.五月丁香| 五月丁香六月婷婷欧美综合| 色五月婷婷激情五月| wuyuedingxiang99| 色婷丁香|