日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RHEL6基础三十一之服务器维护基础命令②awk

發(fā)布時間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RHEL6基础三十一之服务器维护基础命令②awk 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?格式:awk -F '[分隔符]' '{pattern + action}' filename[s]

工作方式:awk對指定filename[s]逐行掃描,從第一行到最后一行,讀入有'\n'換行符分割的一條記錄,然后將記錄按指定的域分隔符劃分域,每個域部分再進行各種分析處理,尋找匹配的特定模式的行。如果沒有指定處理動作,則把匹配的行顯示到標(biāo)準(zhǔn)輸出(屏幕),如果沒有指定模式,則所有被操作所指定的行都被處理。

說明:awk是一個強大的文本分析工具,用于在linux/unix下對文本和數(shù)據(jù)進行處理,awk有3個不同版本: awk、nawk和gawk,未作特別說明,一般指gawk,gawk 是 AWK 的 GNU 版本;模式pattern可以是正則表達式、關(guān)系表達式、模式匹配表達式,變量要用' '括起來(awk '$9 ~ /'$pattern'/ {print $6" "$7" "$8}');操作action由一個或多個命令、函數(shù)、表達式組成,之間由換行符或分號隔開,

參數(shù):

-F fs:????指定輸入文件折分隔符,FS是一個字符串或者是一個正則表達式,默認(rèn)是空格或tab,可以同時使用多個域分隔符,這時應(yīng)該把分隔符寫成放到方括號中,,如$awk -F'[:\t]' '{print $1,$3}' test,表示以空格、冒號和tab作為分隔符。

-v var=value:????????賦值一個用戶定義變量

-f scripfile:????從腳本文件中讀取awk命令


BEGIN:讓用戶指定在第一條輸入記錄被處理之前所發(fā)生的動作,通??稍谶@里設(shè)置全局變量。

????????BEGIN模塊后緊跟著動作塊,這個動作塊在awk處理任何輸入文件之前執(zhí)行。所以它可以在沒有任何輸入的情況下進行測試。它通常用來改變內(nèi)建變量的值,如OFS,RS和FS等,以及打印標(biāo)題。如:$ awk 'BEGIN{FS=":"; OFS="\t"; ORS="\n\n"}{print $1,$2,$3} test。上式表示,在處理輸入文件以前,域分隔符(FS)被設(shè)為冒號,輸出文件分隔符(OFS)被設(shè)置為制表符,輸出記錄分隔符(ORS)被設(shè)置為兩個換行符。$ awk 'BEGIN{print "TITLE TEST"}只打印標(biāo)題。


END:讓用戶在最后一條輸入記錄被讀取之后發(fā)生的動作

? ? ??END不匹配任何的輸入文件,但是執(zhí)行動作塊中的所有動作,它在整個輸入文件處理完成后被執(zhí)行。如$ awk 'END{print "The number of records is" NR}' test,上式將打印所有被處理的記錄數(shù)。


print函數(shù)的參數(shù)可以是變量、數(shù)值或者字符串。自定義的內(nèi)容如字符串、分隔符必須用雙引號引用,逗號如果不用雙引號輸出為空格,輸出域的分隔符默認(rèn)是一個空格,保存在OFS中。如$ awk -F: '{print $1,$5}' test,$1和$5間的逗號就是OFS的值。


內(nèi)建變量FS保存輸入域分隔符的值,默認(rèn)是空格或tab??梢酝ㄟ^-F命令行選項修改FS的值??梢酝瑫r使用多個域分隔符,此時需把分隔符放到方括號中,如$awk -F'[:/t]' '{print $1,$3}' test,表示以空格、冒號和tab作為分隔符

[root@justin?~]#?touch?/home/last [root@justin?~]#?last?-n?5?>?!$ last?-n?5?>?/home/last [root@justin?~]#?cat?/home/last root?????pts/010.15.72.73??????Thu?Nov?21?16:45???still?logged?in reboot???system?boot??2.6.32-279.el6.i?Thu?Nov?21?16:45?-?15:46??(23:01) root?????pts/010.15.72.73??????Mon?Nov?18?11:02?-?down??(1+21:13) reboot???system?boot??2.6.32-279.el6.i?Mon?Nov?18?10:23?-?08:16?(1+21:53) root?????pts/010.15.72.73??????Fri?Nov?15?15:27?-?down???(02:09) wtmp?begins?Wed?Nov?13?17:30:52?2013 [root@justin?~]#?awk?'{print?$3}'?/home/last 10.15.72.73 boot 10.15.72.73 boot 10.15.72.73 Wed [root@justin?~]#?tail?-5?/etc/passwd|awk?-F?':'?'{print?$1}' nfsnobody abrt sshd tcpdump justin [root@justin?~]#?tail?-5?/etc/passwd|awk?-F':'?'{print?$1"\t"$7}' nfsnobody???/sbin/nologin abrt????/sbin/nologin sshd????/sbin/nologin tcpdump?/sbin/nologin justin??/bin/bash [root@justin?~]#

顯示/etc/passwd最后5個賬戶和賬戶對應(yīng)的shell,而賬戶與shell之間以逗號分割,而且在所有行添加列名name,shell,在最后一行添加"justin1,/bin/nosh"。

[root@justin?~]#?tail?-5?/etc/passwd|awk?-F?:?'BEGIN?{print?"name,shell"}?{print?$1","$7}?END?{print?"justin1,/bin/nosh"}' name,shell nfsnobody,/sbin/nologin abrt,/sbin/nologin sshd,/sbin/nologin tcpdump,/sbin/nologin justin,/bin/bash justin1,/bin/nosh [root@justin?~]#?tail?-5?/etc/passwd|awk?-F?:?'BEGIN?{print?"name,shell"}?{print?$1?,?$7}?END?{print?"justin1,/bin/nosh"}' name,shell nfsnobody?/sbin/nologin abrt?/sbin/nologin sshd?/sbin/nologin tcpdump?/sbin/nologin justin?/bin/bash justin1,/bin/nosh

環(huán)境變量:

NF:當(dāng)前記錄已經(jīng)瀏覽域的個數(shù),$NF 最后一個域值,$(NF-1)倒數(shù)第二個域....

NR:已讀的記錄數(shù),每處理完一條記錄,NR的值就增加1,,$NR 第幾條記錄的域值,NR=3,$NR 第三個域的值

??????? 打印最后一行最后一個域

[root@localhost?platform.wizards]#?ls?-lrt?out-* -rw-r--r--.?1?root?root???70897310?Aug?10?18:00?out-23.log -rw-r--r--.?1?root?root??646081744?Aug?24?05:28?out-37.log -rw-r--r--.?1?root?root?2614436097?Sep?29?05:34?out-38.log -rw-r--r--.?1?root?root????????869?Oct??7?00:09?out-115.log -rw-r--r--.?1?root?root????????902?Oct??7?00:13?out-138.log -rw-r--r--.?1?root?root????????903?Oct??7?00:18?out-161.log -rw-r--r--.?1?root?root??231190061?Oct??8?05:30?out-183.log -rw-r--r--.?1?root?root???79889728?Oct??9?12:13?out-218.log -rw-r--r--.?1?root?root?1364561105?Oct?26?06:09?out-235.log -rw-r--r--.?1?root?root?1505025643?Nov?15?11:14?out-237.log -rw-r--r--.?1?root?root??????29474?Nov?15?17:59?out-239.log -rw-r--r--.?1?root?root??643381486?Nov?23?07:12?out-240.log [root@localhost?platform.wizards]#?ls?-lrt?out-*|awk?'END?{print?$NF}' out-240.log [root@localhost?platform.wizards]#


$n:當(dāng)前行的第n個域,域間由分隔符隔開,$1表示當(dāng)前行第一個域,$2表示第二個域,$0表示整行記錄;默認(rèn)情況下各域以空格或tab分隔開

ARGC:????命令行參數(shù)的數(shù)目。

ARGV?????????????? 命令行參數(shù)排列

FILENAME:????當(dāng)前文件名,awk瀏覽的文件名 ,注意大小寫

FS ? ?字段分隔符(默認(rèn)是任何空格),等價于命令行 -F選項

OFS??輸出字段分隔符(默認(rèn)值是一個空格)

ORS????輸出記錄分隔符(默認(rèn)值是一個換行符)

RS ? ??記錄分隔符(默認(rèn)是一個換行符)


統(tǒng)計/etc/passwd:文件名,每行的行號,每行的列數(shù),對應(yīng)的完整行內(nèi)容:

[root@justin?~]#?awk?-F:?'{print?"filename?:?"?FILENAME,";""linenumber?:?"?NR,";""Total?number?of?columnsis?:"?NF,";""linename?:?"?$0}'?/etc/passwd ...... filename?:?/etc/passwd;linenumber?:?32?;Total?number?of?columnsis?:7?;linename?:?abrt:x:173:173::/etc/abrt:/sbin/nologin filename?:?/etc/passwd;linenumber?:?33?;Total?number?of?columnsis?:7?;linename?:?sshd:x:74:74:Privilege-separated?SSH:/var/empty/sshd:/sbin/nologin filename?:?/etc/passwd;linenumber?:?34?;Total?number?of?columnsis?:7?;linename?:?tcpdump:x:72:72::/:/sbin/nologin filename?:?/etc/passwd;linenumber?:?35?;Total?number?of?columnsis?:7?;linename?:?justin:x:500:500:justin:/home/justin:/bin/bash

awk中執(zhí)行l(wèi)inux的命令

awk可以用getline或system來調(diào)用shell的命令,在awk的print中我們可以直接調(diào)用shell命令,但都需要把命令放在雙引號里,如:END{print "\nIP:'$IP'";system("date")|getline d;print d;close("date")}' 或者END{print "\nIP:'$IP'";"date"|getline d;print d;close("date")}'

注意:1、在awk中打開一個管道,且同一時刻只能有一個管道存在。執(zhí)行完一個命令,最好立即調(diào)用close()關(guān)閉管道。

? ? ? ? 2、getline?是awk里用于輸入重定向的一個函數(shù),他可以從標(biāo)準(zhǔn)輸入/一個管道/文件讀取輸入,?而不只是從當(dāng)前被處理的文件來處理,?他取得輸入的下一行并給NF,NR,FNR等內(nèi)制變量置值,如果讀取成功,getline返回1;如果讀到文件結(jié)束符,getline返回0;如果發(fā)生錯誤,例如打不開文件,getline返回-1. 所以,getline可以用于while循環(huán)中;getline除了可以通過管道從shell命令里讀取數(shù)據(jù)外,它還可以從標(biāo)準(zhǔn)輸入(用"-"指定從標(biāo)準(zhǔn)輸入讀入,或者如果命令行沒有任何輸入文件且不用 重定向符"<"指定文件,默認(rèn)也是從標(biāo)準(zhǔn)輸入讀)和文件里讀取數(shù)據(jù);如果getline后面沒有指定變量,則讀取的數(shù)據(jù)會放到$0里面

? ? ? ? 3、system的返回值是cmd的退出狀態(tài).如果要獲得cmd的輸出,就要和getline結(jié)合使用

? ? ? ? 4、如果system()括號里面的參數(shù)沒有加上雙引號的話,awk認(rèn)為它是一個變量,它會從awk的變量里面把它們先置換為常量,然后再回傳給shell
如果system()括號里面的參數(shù)有加上雙引號的話,那么awk就直接把引號里面的內(nèi)容回傳給shell,作為shell的“命令行”

? ? ? ? 5、system()是新開一個shell,在相應(yīng)的cmdline參數(shù)送回給shell,所以要注意當(dāng)前shell變量與新開shell變量環(huán)境變量的問題

awk使用shell變量及shell使用awk中的變量

調(diào)用shell腳本里面自定義變量

雙引號+單引號+雙引號+shell變量+雙引號+單引號+雙引號”的格式:awk '{print "'"$VAR1"'", "'"$VAR2"'"}' input_file ?

IP=`ifconfig?|grep?-i?"inet?addr"|grep?-v?"127.0.0.1"|awk?'{print?$2}'|awk?-F':'?'{print?$2}'|paste?-s?-d','` cat?/tmp/iptables.txt|awk?'BEGIN?{print?"\[流淚\]IPtalbes?Forward?Restart!\n"}?{print}?END{print?"\nIP:'$IP'";"date"|getline?d;print?d;close("date")}'

shell中使用awk程序中定義的變量

例如:

eval $(awk 'BEGIN{print "var1='str1';var2='str2'"}')

或者eval $(awk '{printf("var1=%s; var2=%s; var3=%s;",$1,$2,$3)}' abc.txt)


之后可以在當(dāng)前shell中使用var1,var2等變量了。

echo "var1=$var1 ----- var2=$var2"


一個檢測磁盤空間使用情況的腳本的例子

#!/bin/sh #文件系統(tǒng)名字 FILE_SYSTEM_NAME="rootfs" #文件系統(tǒng)掛在的目錄 MOUNTED_ON="/"#?shell命令使用awk中定義的變量spaceSize eval?$(df?-P?|?awk?'$1=="'"$FILE_SYSTEM_NAME"'"?&&?$6=="'$MOUNTED_ON'"?{printf("spaceSize=%s;",$5)}') echo?"主磁盤的使用空間為$spaceSize"spaceSize=`echo?$spaceSize?|?cut?-d%?-f1`? if?[?aa$spaceSize?=?"aa"?];?thenspaceSize=-1 fiif?[?$spaceSize?-le?85?];?thenecho?'主磁盤的使用空間充足' elif?[?$spaceSize?-eq?-1?];?thenecho?'沒有找到主磁盤使用空間,請檢查腳本' elseecho?'主磁盤的使用空間超過閾值' fi


匹配操作符:

[root@justin?~]#?awk?"/root/"?/etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin [root@justin?~]#?awk?"/^root/"?/etc/passwd root:x:0:0:root:/root:/bin/bash [root@justin?~]#?awk?-F?:?'/root/?{print?$1}'?/etc/passwd root operator [root@justin?~]#?awk?-F?:?'/root|justin/?{print?$1}'?/test.txt

范圍模版:

范圍模板匹配從第一個模板的第一次出現(xiàn)到第二個模板的第一次出現(xiàn)之間所有行。如果有一個模板沒出現(xiàn),則匹配到開頭或末尾

[root@justin?~]#?touch?/home/passwd [root@justin?~]#?tail?-8?/etc/passwd?>?/home/passwd [root@justin?~]#?cat?!$ cat?/home/passwd pulse:x:497:496:PulseAudio?System?Daemon:/var/run/pulse:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin rpcuser:x:29:29:RPC?Service?User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous?NFS?User:/var/lib/nfs:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin sshd:x:74:74:Privilege-separated?SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin justin:x:500:500:justin:/home/justin:/bin/bash [root@justin?~]#?awk?"/gdm/,/sshd/"?/home/passwd gdm:x:42:42::/var/lib/gdm:/sbin/nologin rpcuser:x:29:29:RPC?Service?User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous?NFS?User:/var/lib/nfs:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin sshd:x:74:74:Privilege-separated?SSH:/var/empty/sshd:/sbin/nologin [root@justin?~]#

獲得外部變量

在awk中,變量不需要定義就可以直接使用,變量類型可以是數(shù)字或字符串。

  • 賦值格式:Variable = expression,如$ awk '$1 ~/test/{count = $2 + $3; print count}' test,上式的作用是,awk先掃描第一個域,一旦test匹配,就把第二個域的值加上第三個域的值,并把結(jié)果賦值給變量count,最后打印出來。

  • awk可以在命令行中給變量賦值,然后將這個變量傳輸給awk腳本。如$ awk -F: -f awkscript month=4 year=2004 test,上式的month和year都是自定義變量,分別被賦值為4和2004。在awk腳本中,這些變量使用起來就象是在腳本中建立的一樣。注意,如果參數(shù)前面出現(xiàn)test,那么在BEGIN語句中的變量就不能被使用。

  • 域變量也可被賦值和修改,如$ awk '{$2 = 100 + $1; print }' test,上式表示,如果第二個域不存在,awk將計算表達式100加$1的值,并將其賦值給$2,如果第二個域存在,則用表達式的值覆蓋$2原來的值。再例如:$ awk '$1 == "root"{$1 ="test";print}' test,如果第一個域的值是“root”,則把它賦值為“test”,注意,字符串一定要用雙引號。

  • 內(nèi)建變量的使用。變量列表在前面已列出,現(xiàn)在舉個例子說明一下。$ awk -F: '{IGNORECASE=1; $1 == "MARY"{print NR,$1,$2,$NF}'test,把IGNORECASE設(shè)為1代表忽略大小寫,打印第一個域是mary的記錄數(shù)、第一個域、第二個域和最后一個域。

fflush函數(shù)用以刷新輸出緩沖區(qū),如果沒有參數(shù),就刷新標(biāo)準(zhǔn)輸出的緩沖區(qū),如果以空字符串為參數(shù),如fflush(""),則刷新所有文件和管道的輸出緩沖區(qū)。


運算符:

= += -= *= /= %= ^= **= ? 賦值 ?

|| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 邏輯或 ?

&& ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?邏輯與 ?

[root@Super?~]#?cat?sed.txt?|awk?'/GSSAPIAuthentication?no/||/GSSAPIAuthentication?yes/?{print?$0}' GSSAPIAuthentication?no?GSSAPIAuthentication?yes GSSAPIAuthentication?yes [root@Super?~]#?cat?sed.txt?|awk?'/GSSAPIAuthentication?no/&&/GSSAPIAuthentication?yes/?{print?$0}' GSSAPIAuthentication?no?GSSAPIAuthentication?yes [root@Super?~]#?cat?sed.txt? GSSAPIAuthentication?no?GSSAPIAuthentication?yes GSSAPIAuthentication?yes [root@Super?~]#


~和 ~! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 匹配后面的正則表達式和不匹配正則表達式;awk '$1 ~ /101/ {print $1}' file 顯示文件中第一個域匹配101的行(記錄),并打印第一個域

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort |uniq 2>/dev/null,其中$NF~/^[0-9]*$/表示最后一個域匹配的是數(shù)字

< <= > >= != == ? ? ? ? ? ? ? ? 關(guān)系運算符 ?

空格 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 連接 ?

+ - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?加,減 ?

* / & ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 乘,除與求余 ?

+ - ! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一元加,減和邏輯非 ?

^ *** ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?求冪 ?

++ -- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 增加或減少,作為前綴或后綴 ?

$ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 字段引用 ,$NF表示最后一個域 ?

[root@justin?~]#?awk?-F:?'/root/?&&?/bash/?{print?$0}'?/etc/passwd root:x:0:0:root:/root:/bin/bash [root@justin?~]#?awk?-F:?'/root/?{print?$0}'?/etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin [root@justin?~]#?awk?-F:?'$1=="tcpdump"'?/etc/passwd tcpdump:x:72:72::/:/sbin/nologin [root@justin?~]#?awk?-F:?'$3>499?||?$4<1'?/etc/passwd root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt operator:x:11:0:operator:/root:/sbin/nologin nfsnobody:x:65534:65534:Anonymous?NFS?User:/var/lib/nfs:/sbin/nologin justin:x:500:500:justin:/home/justin:/bin/bash [root@justin?~]#



函數(shù)

print

print函數(shù)的參數(shù)可以是變量、數(shù)值或者字符串。字符串必須用雙引號引用,參數(shù)用逗號分隔。如果沒有逗號,參數(shù)就串聯(lián)在一起而無法區(qū)分。這里,逗號的作用與輸出文件的分隔符的作用是一樣的,只是后者是空格而已。



gsub

gsub(r,s)??? 在整個$0中用s替代r
gsub(r,s,t)??? 在整個t中用s替代r


將一行拆分成多行

[root@localhost?~]#?cat?test? 1,2,3 a,b,c [root@localhost?~]#

拆分后

[root@localhost?~]#?cat?test? 1 1 2 1 3 1 a 2 b 2 c 2 [root@localhost?~]#

解析:

先在每行末加個逗號“,”,不然每行的最后一位數(shù)3和c后面的1和2就沒有

[root@localhost?~]#?sed?-i?'s/$/,/'?test? [root@localhost?~]#?cat?test? 1,2,3, a,b,c, [root@localhost?~]#?cat?test?|?awk?'BEGIN{i=1}{gsub(/,/,"\t"i"\n");i++;print}' 1 1 2 1 3 1a 2 b 2 c 2[root@localhost?~]#?cat?test?|?awk?'BEGIN{i=1}{gsub(/,/,"\t"i"\n");i++;print}'|sed?'/^$/d' 1 1 2 1 3 1 a 2 b 2 c 2 [root@localhost?~]#

gsub(regular expression, subsitution string, target string);簡稱 gsub(r,s,t),gsub函數(shù)則使得在所有正則表達式被匹配的時候都發(fā)生替換

[root@localhost?~]#?echo?"a?b?c?2011-11-22?a:d"?|?awk?'$4=gsub(/-/,"",$4)' a?b?c?2?a:d [root@localhost?~]#?echo?"a?b?c?2011-11-22?a:d"?|?awk?'gsub(/-/,"",$4)' a?b?c?20111122?a:d [root@localhost?~]#?echo?"a?b?c?2011-11-22?a:d"?|?awk?'gsub(/-/,"_",$4)' a?b?c?2011_11_22?a:d [root@localhost?~]#?echo?"a?b?c?2011-11-22?a:d"?|?awk?'gsub(/-/,"_")' a?b?c?2011_11_22?a:d [root@localhost?~]#

gsub(/-/,"",$4)的值是2【在賦值的情況下是這樣的~】,你將2賦值給$4 ,gsub返回的是替換的次數(shù)

[root@localhost?~]#?cat?data.test? 0001|123efskjfdj|EREADFASDLKJCV 0002|123456djfksdaa|JDKFJALSDJFsddf 0003|12345678efskjfdj|EREADFASDLKJCV 0004|123456789djfksdaa1234|JDKFJALSDJFsddf [root@localhost?~]#?awk?-F'|'?'BEGIN{OFS="|"}{sub(/[0-9]+/,"",$2);print?$0}'?data.test? 0001|efskjfdj|EREADFASDLKJCV 0002|djfksdaa|JDKFJALSDJFsddf 0003|efskjfdj|EREADFASDLKJCV 0004|djfksdaa1234|JDKFJALSDJFsddf [root@localhost?~]#?awk?-F'|'?'BEGIN{OFS="|"}{sub(/[0-9]+5/,"",$2);print?$0}'?data.test??#0-9出現(xiàn)任意次數(shù),后面跟隨5的替換?$2匹配的第二個域 0001|123efskjfdj|EREADFASDLKJCV 0002|6djfksdaa|JDKFJALSDJFsddf 0003|678efskjfdj|EREADFASDLKJCV 0004|6789djfksdaa1234|JDKFJALSDJFsddf [root@localhost?~]#?awk?-F'|'?'BEGIN{OFS="|"}{sub(/[0-9]+2/,"2018",$1);print?$0}'?data.test? 0001|123efskjfdj|EREADFASDLKJCV 2018|123456djfksdaa|JDKFJALSDJFsddf 0003|12345678efskjfdj|EREADFASDLKJCV 0004|123456789djfksdaa1234|JDKFJALSDJFsddf [root@localhost?~]#

gsub匹配所有的符合模式的字符串,相當(dāng)于 sed 's//g' 。

sub匹配第一次出現(xiàn)的符合模式的字符串,相當(dāng)于 sed 's//' 。

sub函數(shù)匹配指定域/記錄中最大、最靠左邊的子字符串的正則表達式,并用替換字符串替換這些字符串。如果沒有指定目標(biāo)字符串就默認(rèn)使用整個記錄。替換只發(fā)生在第一次匹配的時候

$ awk '{ sub(/test/, "mytest"); print }' testfile #在整個記錄中匹配,替換只發(fā)生在第一次匹配發(fā)生的時候。

$ awk '{ sub(/test/, "mytest", $1); print }' testfile ?#在整個記錄的第一個域中進行匹配,替換只發(fā)生在第一次匹配

$ awk '{ gsub(/test/, "mytest"); print }' testfile #在整個文檔中匹配test,匹配的都被替換成mytest。

$ awk '{ gsub(/test/, "mytest", $1); print }' testfile #在整個文檔的第一個域中匹配,所有匹配的都被替換成mytest


例如:截取路徑部分的目錄

[root@localhost?~]#?cat?gsub.txt? serv_dir=/home/level2/ini/netunitht.xml serv_dir=/home/level2/rawfiles/publicch/proxy_sysht.zip serv_dir=/home/level2/user/userini/dzhhqserverht.ini serv_dir=/home/level2/user/userini/autoupdateht.ini [root@localhost?~]#?cat?gsub.txt?|?sed?"s/^.*=//"|awk?-F'/'?'{gsub($NF,"");print}'|sort?-bu /home/level2/ini/ /home/level2/rawfiles/publicch/ /home/level2/user/userini/ [root@localhost?~]#

在賦值的情況下gsub返回的是替換的次數(shù)

[root@localhost?~]#?echo?"a?b?c?2011-11-22?a:d"?|?awk?'$4=gsub(/-/,"",$4)' a?b?c?2?a:d [root@localhost?~]#

gsub(/-/,"",$4)的值是2


length?

length函數(shù)返回沒有參數(shù)的字符串的長度。length函數(shù)返回整個記錄中的字符數(shù),length($n)返回弟n個域的字符串長度

echo "1234567"|awk '{print length}'

[root@localhost?~]#?echo?"1234567"|awk?'{print?length}' 7 [root@Super?~]#?awk?-F'='?'length($2)<7{print?$2}'?test.txt? dweere [root@Super?~]#?cat?test.txt? adfa=dweere=dabw3d=kj8kjfadf [root@Super?~]#?awk?-F'='?'length($2)<7{print?$2"\t"length($2)}'?test.txt? dweere 6 [root@Super?~]#?awk?-F'='?'{if(length($2)<7)?print?$2"\t"length($2)}'?test.txt? dweere 6 [root@Super?~]#

index

index(String1,String12)? 在由 String1 參數(shù)指定的字符串(其中有出現(xiàn) String2 指定的參數(shù))中,返回位置,從 1 開始編號。如果 String2 參數(shù)不在 String1 參數(shù)中出現(xiàn),則返回 0(零)。

index( String1, String2 )


blength

blength [(String)] ?? ?返回 String 參數(shù)指定的字符串的長度(以字節(jié)為單位)。如果未給出 String 參數(shù),則返回整個記錄的長度($0 記錄變量)。


match

match(s,r)??? 測試s是否包含匹配r的字符串


tolower

tolower( String ) ?? ?返回 String 參數(shù)指定的字符串,字符串中每個大寫字符將更改為小寫。大寫和小寫的映射由當(dāng)前語言環(huán)境的 LC_CTYPE 范疇定義。


toupper( String ) ?? ?返回 String 參數(shù)指定的字符串,字符串中每個小寫字符將更改為大寫。大寫和小寫的映射由當(dāng)前語言環(huán)境的 LC_CTYPE 范疇定義。


sprintf

sprintf(Format, Expr, Expr, … ) ?? ?根據(jù) Format 參數(shù)指定的 printf 子例程格式字符串來格式化 Expr 參數(shù)指定的表達式并返回最后生成的字符串。


gensub

gensub(a,b,c[,d])全局替換,匹配正則a, 用b替換,c為指定替換目標(biāo)是第幾次匹配,d為指定替換目標(biāo)是哪個域如$1,$2,若無d指$0,返回值為target替換后內(nèi)容(未替換還是返回 target原內(nèi)容),與sub、gsub不同的是,target內(nèi)容替換后不改變

eg:

gensub(/123/,"x",1,$1)替換$1中 第一次匹配到的123為字符x,返回值為$1替換后的內(nèi)容,且$1的內(nèi)容并沒有改變
gensub(/a(.*)b/,"\\1",1) 返回值為匹配正則第1對()內(nèi)的內(nèi)容
gensub(/a(.*)b(.*)c/,"\\2",1) 返回值為匹配正則第2對()內(nèi)的內(nèi)容


substr

截取字符串,返回從起始位置起,指定長度之子字符串;若未指定長度,則返回從起始位置到字符串末尾的子字符串。

格式:

? substr(s,p) 返回字符串s中從第p個字符串開始到結(jié)尾的后綴部分

? substr(s,p,n) 返回字符串s中從第p個字符串開始長度為n的后綴部分

[root@localhost?~]#?echo?"1234|abcd|ab12"|awk?'{print?substr($0,6,4)}'?#返回從第6個字符串開始長度為4的部分 abcd [root@localhost?~]#?echo?"1234|abcd|ab12"|awk?'{print?substr($0,6,8)}'? abcd|ab1 [root@localhost?~]#?echo?"1234|abcd|ab12"|awk?-F'|'?'{print?substr($3,2,2)}'?#返回以|為分隔符的第3個域的第2個字符串開始長度為2的部分 b1 [root@localhost?~]#?echo?"1234|abcd|ab12"|awk?-F'|'?'{print?substr($3,2)}'???#返回以|為分隔符的第3個域的第2個字符串到字符串末尾的部分 b12 [root@localhost?~]#?cat?substr.txt? 115!16201!1174113017250745?10.86.96.41?211.140.16.1?200703180718 F125!16202!1174113327151715?10.86.96.42?211.140.16.2?200703180728 F235!16203!1174113737250745?10.86.96.43?211.140.16.3?200703180738 F245!16204!1174113847250745?10.86.96.44?211.140.16.4?200703180748 F355!16205!1174115827252725?10.86.96.45?211.140.16.5?200703180758 [root@localhost?~]#?awk?-F'!'?'{?print?substr($3,6,11)}'?substr.txt? 13017250745 13327151715 13737250745 13847250745 15827252725 [root@localhost?~]#

split

初始化和類型強制,awk的內(nèi)建函數(shù)split允許你把一個字符串分隔為單詞并存儲在數(shù)組中。你可以自己定義域分隔符或者使用現(xiàn)在FS(域分隔符)的值。

格式:

? ?split (string, array, field separator)

? ?split (string, array) -->如果第三個參數(shù)沒有提供,awk就默認(rèn)使用當(dāng)前FS值。

[root@localhost?~]#?time="12:34:56" [root@localhost?~]#?out=`echo?$time?|?awk?'{split($0,a,":");print?a[1],a[2],a[3]}'` [root@localhost?~]#?echo?$out 12?34?56 [root@localhost?~]#?cat?out-130.log +08:00?2019-01-08?11:59:30.935?:?task:nw.platform.wizards_securities-SqlReader0057?;?cost:24?ms?;?size:0?;?tmstamp:5069194669-5069195668 +08:00?2019-01-08?12:59:30.938?:?task:nw.platform.wizards_securities-SqlReader0057?;?cost:3?ms?;?mark:0?;?last:5069194668 +08:00?2019-01-08?13:59:30.989?:?task:nw.platform.wizards_securities-SqlReaderPersonalName?;?cost:81?ms?;?size:0?;?tmstamp:5075630629-5075631628 +08:00?2019-01-08?13:59:30.992?:?task:nw.platform.wizards_securities-SqlReaderPersonalName?;?cost:3?ms?;?mark:0?;?last:5075630628 +08:00?2019-01-08?14:59:31.345?:?task:nw.platform.wizards_securities-SqlReader0057?;?cost:443?ms?;?size:0?;?tmstamp:5069194669-5069195668 +08:00?2019-01-08?15:59:31.347?:?task:nw.platform.wizards_securities-SqlReader0057?;?cost:2?ms?;?mark:0?;?last:5069194668 [root@localhost?~]#?cat?out-130.log?|grep?'2019-01-08'|awk?'{split($3,A,":");if(A[1]>="13"?&&?A[1]<"14"){print?$0}}'???//過濾13-14點的日志 +08:00?2019-01-08?13:59:30.989?:?task:nw.platform.wizards_securities-SqlReaderPersonalName?;?cost:81?ms?;?size:0?;?tmstamp:5075630629-5075631628 +08:00?2019-01-08?13:59:30.992?:?task:nw.platform.wizards_securities-SqlReaderPersonalName?;?cost:3?ms?;?mark:0?;?last:5075630628 [root@localhost?~]#?cat?awk.txt [22/Feb/2017-18:51:21]????api.momo.com????/api/feed????HTTP/1.1??????121.0.0.1????iphone1.1 [root@localhost?~]#?cat?awk.txt|awk?'{split($1,array,"[");split(array[2],array2,"]");if(array2[1]?>=?"22/Feb/2017-18:52:59"){print($0)}}


systime、strftime

systime函數(shù)將返回自1970 年1月l日以來經(jīng)過的時間(按秒計算)。

[root@localhost?~]#?date Tue?May?22?19:35:29?CST?2018 [root@localhost?~]#?awk?'BEGIN{a=systime();print?a}' 1526988930 [root@localhost?~]#

strftime函數(shù)使用C庫中的strftime函數(shù)對時間進行格式化。格式形式可以為%T %D等(參見下表)。時間戳的格式和systime函數(shù)返回值所采用的格式一樣,如果不使用時間戳,則以當(dāng)前的時間為默認(rèn)時間。

[root@localhost?~]#?awk?'BEGIN{a=strftime("%c");print?a}' Tue?22?May?2018?07:37:27?PM?CST [root@localhost?~]#?awk?'BEGIN{a=strftime("%m%d%y");print?a}' 052218 [root@localhost?~]#?awk?'BEGIN{a=strftime("%m%d%Y");print?a}' 05222018 [root@localhost?~]#

日期格式定義

%a簡寫的星期名(如Sun)

%A完整的星期名(如Sunday)

%b簡寫的月名(如Oct)

%B完整的月名(如October)

%c本地的日期和時間(如Sun Oct 17 15:26:46 2014)

%d用十進制表示的月份中的某一夭( 如17)

%D采用10/17/14 形式表示的日期

%e月份中的某一夭,如果只有一位數(shù)字,用空格填充份

%H用十進制表示的24 小時制的小時數(shù)以( 如15)

%I用十進制表示的12 小時制的小時數(shù)( 如03)

%j用十進制表示的從當(dāng)年1 月1 日以來的天數(shù)。(如290)

%m用十進制表示的月數(shù)( 如10)

%M用十進制表示的分鐘數(shù)( 如26)

%p采用12 小時制表示的AM/PM 表示法(如PM)

%S用十進制表示的秒數(shù)(如26)

%U用十進制表示的一年中的周數(shù)(星期日作為一周的開始)(如42)

%w用十進制表示的星期數(shù)(如星期日為0)

%W用十進制表示的一年中的周數(shù)(星期一作為一周的開始)(如41)

%x本地日期(如 10/17/14)

%X本地時間(如15:26:26)

%y用十進制表示的年份(采用兩位十進制表示,如14)

%Y帶世紀(jì)的年份(如2004)

%Z時間區(qū)(如PDT)

%%一個百分號字符標(biāo)記(%)



幾個實例

  • $ awk '/^(no|so)/' test-----打印所有以模式no或so開頭的行。

  • $ awk '/^[ns]/{print $1}' test-----如果記錄以n或s開頭,就打印這個記錄。

  • $ awk '$1 ~/[0-9][0-9]$/(print $1}' test-----如果第一個域以兩個數(shù)字結(jié)束就打印這個記錄。

  • $ awk '$1 == 100 || $2 < 50' test-----如果第一個或等于100或者第二個域小于50,則打印該行。

  • $ awk '$1 != 10' test-----如果第一個域不等于10就打印該行。

  • $ awk '/test/{print $1 + 10}' test-----如果記錄包含正則表達式test,則第一個域加10并打印出來。

  • $ awk '{print ($1 > 5 ? "ok "$1: "error"$1)}' test-----如果第一個域大于5則打印問號后面的表達式值,否則打印冒號后面的表達式值。

  • $ awk '/^root/,/^mysql/' test----打印以正則表達式root開頭的記錄到以正則表達式mysql開頭的記錄范圍內(nèi)的所有記錄。如果找到一個新的正則表達式root開頭的記錄,則繼續(xù)打印直到下一個以正則表達式mysql開頭的記錄為止,或到文件末尾。


?if語句

格式:
? ? ? ?{if (expression){
? ? ? ? ? ? ? ? ? 語句; 語句; ...
? ? ? ? ? ? ? ? ? ? }
? ? ? ?}

$ awk '{if ($1 <$2) print $2 "too high"}' test。如果第一個域小于第二個域則打印。

$ awk '{if ($1 < $2) {count++; print "ok"}}' test.如果第一個域小于第二個域,則count加一,并打印ok。

注意:1、if 條件后面的語句塊,如果是單個語句,可以省略花括號,如果是多個語句,必須用花括號

2、awk對大括號和語句的位置沒有特殊的要求(和sed不同)。左大括號放在條件表達式后面,可以與條件表達式位于一行也可以在下一行。第一條語句可以緊跟左大括號或從下一行開始,右大括號可以與最后一條語句位于同一行也可以在下一行。在大括號的前后允許有空格或制表符。雖然沒有要求語句縮進書寫,但這樣可以改善可讀性。

[root@localhost?~]#?cat?mul.txt? ABCD?1234?ab?cd ABC?5678?12?3c? ab?1234?3d?45 AB?12?ab?cd ab?CD?12?34? [root@localhost?~]#?awk?'{if($2==1234){print?$1,$NF}}'?mul.txt? ABCD?cd ab?45 [root@localhost?~]#


?if/else語句,用于雙重判斷

格式:
? ? ? ?{if (expression){statement; statement; ...}
? ? ? ?else{statement; statement; ...}
? ? ? ?}

$ awk '{if ($1 > 100) print $1 "bad" ; else print "ok"}' test。如果$1大于100則打印$1 bad,否則打印ok。

$ awk '{if ($1 > 100){ count++; print $1} else {count--; print $2}' test。如果$1大于100,則count加一,并打印$1,否則count減一,并打印$1。

注意:if 條件后面的語句塊,如果是單個語句,可以省略花括號,如果是多個語句,必須用花括號


if/else else if語句,用于多重判斷

格式:
? ? ? ?{if (expression){statement; statement; ...}
? ? ? ?else if (expression){statement; statement; ...}
? ? ? ?else if (expression){statement; statement; ...}
? ? ? ?else {statement; statement; ...}
? ? ? ?}

if (avg >= 90) grade = "A"
else if (avg >= 80) grade = "B"
else if (avg >= 70) grade = "C"
else if (avg >= 60) grade = "D"
else grade = "F"

[root@localhost?~]#?awk?'{if($2==1234){print?$NF}else?if($2==1234?&&?$3==ab){print?$3$NF}else?if($1==ab)print?$NF;else{print?$0}}'?mul.txt


循環(huán)

awk有三種循環(huán):while循環(huán);for循環(huán);special for循環(huán)。

while循環(huán):

使用while循環(huán)的時候第一步先給一個變量設(shè)初始值。然后在while表達式中測試該變量。

$ awk '{ i = 1; while ( i <= NF ) { print NF,$i; i++}}' test。變量的初始值為1,若i小于可等于NF(記錄中域的個數(shù)),則執(zhí)行打印語句,且i增加1。直到i的值大于NF.


for循環(huán)

$ awk '{for (i = 1; i<NF; i++) print NF,$i}' test。作用同上。

$awk '{for(i=2;i<17;i++) {printf("%s ",$i)} print $NF"\n"}'???????? 輸出連續(xù)的多列


break、continue語句:

break用于在滿足條件的情況下跳出循環(huán);continue用于在滿足條件的情況下忽略后面的語句,直接返回循環(huán)的頂端。如:

{for ( x=3; x<=NF; x++)
? ? ? ? ? ?if ($x<0){print "Bottomed out!"; break}}

{for ( x=3; x<=NF; x++)
? ? ? ? ? ?if ($x==0){print "Get next item"; continue}} ? ??


next語句從輸入文件中讀取一行,然后從頭開始執(zhí)行awk腳本。如:

{if ($1 ~/test/){next}
? ?else {print}
} ? ?

exit語句用于結(jié)束awk程序,但不會略過END塊。退出狀態(tài)為0代表成功,非零值表示出錯。



待完善......

轉(zhuǎn)載于:https://blog.51cto.com/ityunwei2017/1334886

總結(jié)

以上是生活随笔為你收集整理的RHEL6基础三十一之服务器维护基础命令②awk的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

亚洲精品乱码久久久久v最新版 | 国产精品一区二区三区四区在线观看 | 国产字幕在线播放 | 亚洲精品视频在线观看免费视频 | 在线观看黄网 | 中文字幕中文字幕在线一区 | 免费视频91| 久久久久久久久久久久影院 | 97福利视频 | 久久久久久国产精品 | 久久大香线蕉app | 在线观看免费一级片 | 日本在线观看中文字幕 | 免费高清在线视频一区· | 久久久久久久久久久高潮一区二区 | 久久国产精品99国产 | 免费看片色| 亚洲国产高清在线观看视频 | 国产99久久久国产精品成人免费 | 精品国产一区二区三区在线 | 成人不用播放器 | 精品主播网红福利资源观看 | 亚洲精品乱码久久久久久久久久 | 国产精品美乳一区二区免费 | 久二影院 | 免费在线观看成人小视频 | 久久 精品一区 | 久久狠狠亚洲综合 | 韩国av永久免费 | 亚洲天天综合 | 精品国产免费看 | 91成人精品一区在线播放 | 91av影视| 视频国产区 | 久草综合在线观看 | 亚洲最新在线视频 | 96精品视频 | 在线国产激情视频 | 去看片 | 毛片www| 91精品视屏 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 97夜夜澡人人爽人人免费 | 国产黄在线 | 91视频链接 | 欧美精品999 | 亚洲天天摸日日摸天天欢 | 香蕉一区| 久久不卡视频 | 中文在线a天堂 | 99久高清在线观看视频99精品热在线观看视频 | 国产精品一级视频 | 日韩手机视频 | 欧美亚洲一区二区在线 | 99热都是精品 | 久久你懂的 | 玖玖在线免费视频 | 国产在线精| 在线观看国产中文字幕 | 91精品国产高清自在线观看 | 色网站在线 | 91插插视频 | 亚洲女在线 | 日本中文字幕视频 | 97免费在线观看视频 | 在线看的av网站 | 日本久久久久久 | 国产精品欧美一区二区三区不卡 | 国产成人亚洲精品自产在线 | a级片久久久 | 91成品人影院 | 久久综合久久久 | 久久久午夜精品福利内容 | 免费久久久久久久 | 久久久精品综合 | 久久久96 | 天天操偷偷干 | 99久久99久久免费精品蜜臀 | 中文字幕a在线 | 黄色毛片视频免费观看中文 | 91av在线视频免费观看 | 国产福利在线免费 | 亚洲电影久久 | 国产一级在线播放 | 五月婷婷六月综合 | 天天操夜夜操国产精品 | 成人免费看片98欧美 | 九九免费观看全部免费视频 | 久久精彩免费视频 | 狠狠干.com| 欧美动漫一区二区三区 | 午夜a区| 国产精品婷婷 | 黄色小网站免费看 | 九九在线精品视频 | 国产精品a级 | 久久精品亚洲国产 | 91丨九色丨国产在线 | 成人国产精品免费观看 | 色狠狠综合天天综合综合 | 国产一区二区三区 在线 | 精品欧美日韩 | 久久99网 | 18久久久 | 成人久久免费 | 欧洲不卡av| 久久人人爽av | 五月天综合在线 | 天天碰天天操视频 | 天天爱天天操 | 欧美精品久久久久久久久久久 | 看污网站 | 国产在线美女 | 国产成人一区二区三区影院在线 | 日韩av视屏| 国产亚洲精品久久久久久电影 | 亚洲欧美综合精品久久成人 | 日韩精品在线免费观看 | av日韩av| 欧美色图88| 伊人资源视频在线 | 久久久久福利视频 | 免费看的黄色小视频 | 亚洲综合欧美激情 | 四虎永久精品在线 | 日韩精品中文字幕av | 亚洲精品久久久蜜臀下载官网 | 亚洲三级黄色 | 国产高清免费 | 国内精品久久久久久久久久清纯 | 精品久久久久一区二区国产 | 日本精品中文字幕在线观看 | 国产精品视频最多的网站 | 久久a免费视频 | 免费看的黄色网 | 国语精品久久 | 国产精品久久久久久久久搜平片 | 9在线观看免费高清完整版 玖玖爱免费视频 | 天天天天色综合 | 丰满少妇久久久 | 99国产精品免费网站 | 综合久久久久久久久 | 亚洲免费永久精品国产 | 97成人资源站| 欧美激精品 | 久久香蕉国产 | 91精彩视频在线观看 | 日韩久久精品 | 国产人成在线观看 | 成人av免费看 | 久久国产高清 | 日韩美女久久 | 欧美在线1区 | 美女视频久久久 | bbw av| 8090yy亚洲精品久久 | 黄色网址在线播放 | 在线色吧| 免费看特级毛片 | 91cn国产在线| 国产又粗又猛又黄又爽的视频 | 国产精品久久久久婷婷二区次 | 国产精品国产三级国产不产一地 | 成人高清av在线 | 亚洲高清视频在线观看 | 久久成人综合 | 在线视频观看亚洲 | 亚洲精品国偷拍自产在线观看蜜桃 | 在线a亚洲视频播放在线观看 | 成人精品电影 | 亚洲成av片人久久久 | 婷婷视频 | 免费看污网站 | 中文字幕在线观看免费观看 | 久久久国产一区二区 | 日韩一区二区在线免费观看 | 久草视频在线新免费 | 午夜性生活 | 黄色成品视频 | 色婷婷综合视频在线观看 | 五月天综合婷婷 | 国产一区二区电影在线观看 | 欧美国产亚洲精品久久久8v | 91精品国产九九九久久久亚洲 | 久草视频在线资源站 | 久久久久成人精品 | 99色视频在线 | 婷婷视频在线 | 国产精品v a免费视频 | 99免费国产| 国产精品第 | 欧美一级淫片videoshd | 麻豆精品视频在线观看免费 | 91黄视频在线观看 | 亚洲精品美女久久17c | 人人狠狠综合久久亚洲 | 2023av在线| 一区二区三区观看 | 色综合天天色综合 | 免费观看av | 日p视频| 伊人导航 | 免费看av片网站 | 一区二区三区四区免费视频 | 日韩乱色精品一区二区 | av免费播放 | 91片在线观看| 精品视频在线免费 | 狠狠干 狠狠操 | 成人精品一区二区三区电影免费 | 香蕉视频在线免费 | 五月天视频网 | 一级做a爱片性色毛片www | 麻豆精品视频在线观看免费 | 国产一线在线 | 亚洲欧美国产视频 | 天天亚洲综合 | 成人在线视频一区 | 国产日韩精品一区二区三区在线 | 欧美一级特黄aaaaaa大片在线观看 | 欧美 国产 视频 | 日韩av电影中文字幕在线观看 | 久久久久久久毛片 | 91久久爱热色涩涩 | 国产一区二区高清不卡 | 成年人在线观看视频免费 | 中国一区二区视频 | 成人免费观看在线视频 | 一级片免费观看视频 | 天天色天天草天天射 | 永久免费毛片在线观看 | 久久久天堂 | 久草精品在线 | 久草资源在线观看 | 色狠狠婷婷 | www日韩高清| 国产亚洲一级高清 | 国产精品99久久久久的智能播放 | 精品免费视频. | 久精品在线观看 | 91夫妻自拍| 中文字幕在线视频免费播放 | 91九色视频国产 | 久久精品视频3 | 亚洲免费一级 | 就色干综合 | 欧美综合在线视频 | 亚洲狠狠操| 欧美日韩性视频 | zzijzzij亚洲日本少妇熟睡 | 欧美 亚洲 另类 激情 另类 | 欧美日韩免费观看一区二区三区 | 久久黄色小说视频 | 在线观看免费黄视频 | 深夜免费福利网站 | 91精品福利在线 | 在线观看va| 美女久久久久久久久久久 | 欧美成人高清 | 97视频在线观看成人 | 国产 日韩 欧美 中文 在线播放 | 久久99精品久久久久蜜臀 | 免费亚洲黄色 | 久久女同性恋中文字幕 | 婷婷五月在线视频 | www.狠狠色.com | 婷婷伊人综合 | 夜夜躁日日躁狠狠久久av | 91免费版成人 | 国产日韩欧美在线 | 337p西西人体大胆瓣开下部 | 毛片网站在线观看 | 韩国av一区二区三区 | 人人插人人玩 | 亚洲视频 一区 | 99精品在线免费在线观看 | 色com| 久草青青在线观看 | 人人爽人人av | 日日日操操 | av资源免费看 | 国产日韩av在线 | 久久精品国产免费看久久精品 | 91成人网在线观看 | 在线观看国产www | 日韩在线网址 | 激情五月看片 | 国产精品24小时在线观看 | 亚洲精品女人久久久 | 激情视频一区二区三区 | 久久久久久久久影院 | 在线a视频 | 91片黄在线观 | 天天天干天天射天天天操 | 开心激情五月网 | 色婷婷播放 | 99视频免费在线观看 | 99精品在线视频播放 | 成人在线中文字幕 | 久久欧美综合 | 最近中文字幕免费大全 | 91视频久久久久 | 国产永久网站 | 色综合久 | 国产在线色 | 久久五月婷婷综合 | 国产一区二区电影在线观看 | 日韩h在线观看 | 色久av| 18国产精品福利片久久婷 | 国产在线观看地址 | 夜夜操天天| 99热在线国产精品 | 国产剧情在线一区 | a爱爱视频 | 久久免费视屏 | 中文字幕在线观看视频一区二区三区 | 亚洲日韩欧美一区二区在线 | 麻豆视频网址 | 婷婷国产v亚洲v欧美久久 | 就要干b| a天堂免费 | 五月天激情综合 | 国产一级片视频 | 九九久久免费视频 | 伊人狠狠色 | 久久精品99国产精品 | 久草在线视频网 | 91视频在线免费 | 91精品区 | 亚洲黄色免费在线看 | 日日夜夜骑 | 夜夜操网| 色中射| 日韩成人免费电影 | 色视频在线免费观看 | 日本黄色大片免费 | 天天爱天天色 | 亚洲久草在线 | 国产精品视频地址 | 久久精品视 | 精品成人久久 | 亚洲日b视频| 在线观看免费av网站 | 国产黑丝袜在线 | 91桃色国产在线播放 | 色国产视频| 中国成人一区 | 日本黄色大片免费 | 国产麻豆视频免费观看 | 婷婷五月在线视频 | 天天色图 | 97成人在线免费视频 | 天天干天天干天天干 | 日韩成人在线免费观看 | 日日夜夜狠狠干 | 免费一级片在线 | 在线成人短视频 | 中国美女一级看片 | 最近更新中文字幕 | 免费精品久久久 | 日日夜夜天天人人 | 欧美精品乱码99久久影院 | 国产精品国产三级国产不产一地 | 国产亚洲视频中文字幕视频 | 欧美一区中文字幕 | 黄色成人在线 | 欧美动漫一区二区三区 | 免费黄色av. | 中文字幕在线播放日韩 | 国产精品久久99综合免费观看尤物 | 黄www在线观看 | 草樱av| 天天草天天插 | 亚洲va欧洲va国产va不卡 | 在线观看激情av | 欧美贵妇性狂欢 | 亚洲综合在线播放 | 久久久这里有精品 | 爱色婷婷 | 久久综合射 | 精品99在线视频 | 中文字幕欧美激情 | 国产在线91在线电影 | 免费视频国产 | 日韩中文字幕第一页 | 手机在线视频福利 | 欧美a视频| 亚洲精选在线观看 | 精品福利av | 久久夜夜爽 | 婷婷午夜天| 丝袜美腿在线视频 | 美女精品网站 | 日韩欧美在线观看 | 成年人视频在线观看免费 | 欧美日韩免费网站 | 国产精品美女在线观看 | 高清国产午夜精品久久久久久 | 亚洲国产成人av网 | 中文字幕有码在线播放 | 激情xxxx| 国产欧美在线一区二区三区 | 日韩黄色大片在线观看 | 玖玖在线资源 | 日韩高清一区 | 99热手机在线观看 | 久久av在线播放 | 六月丁香婷婷久久 | av一级片在线观看 | 四虎永久视频 | 99久久精品免费看国产免费软件 | 国产精品久久一区二区三区, | 国产在线观看xxx | 91成人欧美 | 麻豆免费观看视频 | 亚洲japanese制服美女 | 99精品国产99久久久久久97 | 日本久久高清视频 | 欧美一区二区日韩一区二区 | 日批视频在线 | 亚洲国产黄色 | 久久久久久久综合色一本 | 成年人视频在线免费播放 | 涩涩网站在线播放 | 日韩精品一区二区三区水蜜桃 | 91精品久久久久久 | 精品久久久成人 | 国产精品porn | 亚洲影院国产 | 婷婷六月综合网 | 骄小bbw搡bbbb揉bbbb| 九九热在线视频 | 97色狠狠 | 激情六月婷婷久久 | 国产高清专区 | 久久视频在线观看免费 | 中文字幕中文字幕 | 密桃av在线| 中文字幕文字幕一区二区 | 亚洲高清免费在线 | 日韩欧美一区二区三区免费观看 | 久久精精品视频 | 日韩一二三区不卡 | 国产999精品久久久影片官网 | 婷婷性综合 | 久久伊人婷婷 | 中文字幕在线播放视频 | 日本午夜免费福利视频 | 天天插综合网 | 成人一区二区在线 | 久久伊人色综合 | 久久另类小说 | 超碰免费公开 | 福利一区在线 | 91 在线视频 | 人人草在线视频 | 国产激情电影综合在线看 | 中文字幕一区二区三区乱码不卡 | 91亚洲精品久久久蜜桃 | 中文字幕av在线 | 91免费版在线观看 | 黄色一级在线观看 | 欧美一二三区在线播放 | 91精品在线免费观看 | 欧美日韩视频精品 | 在线成人一区 | 91在线蜜桃臀 | 久久不射电影院 | 成人欧美一区二区三区在线观看 | 国产成人一区二区三区免费看 | 久久精品精品电影网 | 精品国产成人在线影院 | 国产中文字幕一区二区 | 免费在线a | 亚洲精选视频免费看 | 日本在线观看中文字幕无线观看 | 99热这里只有精品久久 | 欧美成人精品欧美一级乱黄 | 国产精品网站一区二区三区 | 九九精品视频在线 | 在线黄av | 超碰av在线 | 日女人电影 | 国产精品久久久久久久久久三级 | 亚洲日日日 | 久一网站 | 国产无套精品久久久久久 | 亚洲另类视频在线 | 国产黄色av影视 | 国产91勾搭技师精品 | 国产理论影院 | 日本久久成人中文字幕电影 | 午夜精品久久久久久久久久久久久久 | 色妞久久福利网 | 99国产免费网址 | 一区二区三区中文字幕在线 | 亚洲精品www久久久 www国产精品com | 成年人免费观看在线视频 | 麻豆极品 | 在线亚洲欧美视频 | 亚洲综合在线视频 | 国产成视频在线观看 | 精品一区 精品二区 | 嫩草av在线 | 成人a免费视频 | 亚洲欧美激情精品一区二区 | 91色偷偷| 日韩理论影院 | 99精品在这里 | 又黄又爽又刺激 | av三级在线播放 | 麻豆一区在线观看 | 91免费日韩 | 国产精品一区二区在线观看 | 久久综合电影 | 国产精品久久一区二区无卡 | 国产黄在线 | 在线观看国产成人av片 | 天天综合视频在线观看 | 亚洲永久字幕 | 免费看毛片在线 | 亚洲国产欧美一区二区三区丁香婷 | 国产视频久久久久 | av在观看| 久草在线一免费新视频 | 成人一区二区在线 | 国产成人免费在线观看 | 免费进去里的视频 | 成人国产网址 | 久久社区视频 | 国产黄色av网站 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 韩日在线一区 | 亚洲色视频 | 1024手机基地在线观看 | 美女精品久久久 | 毛片一区二区 | 色精品视频 | 亚州中文av | 在线观看日本韩国电影 | 97**国产露脸精品国产 | 日本婷婷色 | 久久99精品久久只有精品 | 国内精品久久久久久久久久久久 | 九九视频精品免费 | 国产91在线免费视频 | 99九九99九九九视频精品 | 亚洲第一中文字幕 | 婷婷伊人综合亚洲综合网 | 欧美日韩国产一二 | 亚洲精品久久久蜜臀下载官网 | 美女黄频视频大全 | 国产欧美久久久精品影院 | 亚洲电影免费 | 国产九九九精品视频 | 草久草久 | 国产黄色特级片 | 久久av中文字幕片 | 超碰成人免费电影 | 国产成人三级在线播放 | 久久综合久久伊人 | 欧美大片在线看免费观看 | 国产精品18久久久久久久 | 中文字幕 在线 一 二 | 二区三区毛片 | 视频在线精品 | 欧美一区二区三区四区夜夜大片 | 人人爽网站 | 丁香婷婷网 | 国产一区二区三区 在线 | 国产精品精品 | 黄色一级在线免费观看 | 99精品国产99久久久久久福利 | 国产99免费视频 | 六月婷婷色| 黄在线免费看 | 日韩欧美xx| 日韩欧美视频免费观看 | 久久久五月婷婷 | 免费观看性生交大片3 | 99久久这里有精品 | 亚洲专区欧美专区 | 久久综合狠狠综合久久激情 | 国产精品一区一区三区 | 黄色精品久久 | www亚洲国产| 久久综合中文字幕 | av一本久道久久波多野结衣 | 亚洲国产精品成人精品 | 日日操操操 | 天天操狠狠操 | 91av在| bayu135国产精品视频 | 欧美日韩二区在线 | 中文字幕一区二区三区久久蜜桃 | 亚洲国产色一区 | 天堂av在线中文在线 | 国产在线视频资源 | 成人久久18免费网站图片 | 久久影院亚洲 | 国产精品一区二区在线播放 | 国产免费视频一区二区裸体 | 日韩在线观看精品 | av国产在线观看 | 人人爽人人爽人人爽学生一级 | 在线视频一二区 | 欧美日韩高清一区 | 97人人澡人人爽人人模亚洲 | 久久人人爽人人爽人人片av软件 | www.com久久久| 国产一在线精品一区在线观看 | www.夜夜爽| 在线观看视频免费播放 | 精品女同一区二区三区在线观看 | 日韩在观看线 | 欧美一级特黄aaaaaa大片在线观看 | 日韩久久久久久久久 | 久久国产精品视频免费看 | 欧美精品久久久久久久久免 | 国产精品av免费在线观看 | 成人羞羞免费 | 国产中文字幕在线免费观看 | 91久久久久久久 | 国产玖玖精品视频 | 天天干天天插 | 亚洲在线视频免费观看 | 婷婷电影网| 一二区精品 | 亚洲女在线 | 久久久96 | 9色在线视频 | 成人av一区二区兰花在线播放 | 亚洲爱视频| 久久99视频免费观看 | 17videosex性欧美 | 精品在线观看一区二区 | 久久久久久久久久久精 | 成年人免费在线播放 | 亚洲区另类春色综合小说 | 国产成人333kkk | 97超碰免费在线观看 | 天天草天天草 | 久久久www成人免费毛片 | 99欧美视频 | 色综合久久五月天 | 一区在线观看视频 | 日女人免费视频 | 久久视频免费观看 | 国产美女免费观看 | 亚洲欧美日韩中文在线 | 久久精品亚洲国产 | 夜夜夜夜操| 国产片免费在线观看视频 | 国产伦理剧 | 激情综合网五月激情 | 国产91影视 | 国产不卡一区二区视频 | 热久久免费国产视频 | 久久久免费 | 久久久污 | 伊人资源视频在线 | 日韩欧美精品在线观看 | 欧美综合在线视频 | 久久国产精彩视频 | 99精品一区二区三区 | 国产精品一区二区久久精品 | 91精品国产自产91精品 | 国产一级免费在线观看 | 91 中文字幕 | 手机在线看永久av片免费 | 狠狠色伊人亚洲综合成人 | 久久激情精品 | 国产精品你懂的在线观看 | 人人添人人澡 | 国产精品久久久久一区二区 | 91在线蜜桃臀 | 99欧美视频 | 天天干天天射天天操 | 亚洲最大在线视频 | 亚洲精品久久激情国产片 | 欧美精品免费在线 | 国产色视频一区 | 99视频在线 | 99视频在线看 | 国产成人久久久77777 | 久久高清免费观看 | 欧美韩国日本在线 | 亚洲精品久久久久久久蜜桃 | 日韩视频中文字幕 | 久久国产精品一国产精品 | 中文亚洲欧美日韩 | 精品国产91亚洲一区二区三区www | 97人人澡人人添人人爽超碰 | 欧美一级淫片videoshd | 日韩午夜精品福利 | 五月天狠狠操 | 亚洲国产高清在线观看视频 | 亚洲高清精品在线 | 免费看高清毛片 | 亚洲视频电影在线 | 日韩精品无码一区二区三区 | 九九久久免费视频 | 国产精品九色 | 中文字幕久久久精品 | 成人黄色大片在线免费观看 | 奇米影视四色8888 | 免费成人黄色 | 精品国产乱码一区二 | 国产乱码精品一区二区三区介绍 | 国产很黄很色的视频 | 亚州精品在线视频 | 免费观看的av | 一区二区三区日韩在线观看 | 手机在线观看国产精品 | 国产福利精品一区二区 | 久草资源在线 | 99精彩视频在线观看免费 | 五月婷婷综合激情网 | 久久久免费视频播放 | 91精品国自产在线观看 | 五月婷婷视频在线 | 国产免费黄色 | 69av免费视频 | 国产成人61精品免费看片 | 毛片在线播放网址 | 一区二区三区在线观看中文字幕 | 九九九九热精品免费视频点播观看 | 久久综合狠狠综合 | 一区二区三区日韩精品 | 欧美福利视频一区 | 97精品久久人人爽人人爽 | 黄色三级av | 亚洲一区二区精品 | 精品福利在线观看 | 91精品久久久久久粉嫩 | 久精品视频| 久久综合免费视频 | 国产白浆在线观看 | 亚洲视频电影在线 | 欧美大片第1页 | 国产综合在线观看视频 | 精品视频在线观看 | 亚洲视频在线观看网站 | 911国产精品| 国产亚州精品视频 | 美女久久久久久久久久 | 国产精品女 | 99视频国产在线 | av福利第一导航 | 日本久久免费视频 | 美女国内精品自产拍在线播放 | 亚洲欧美综合 | 国内精品久久影院 | www.婷婷色 | 国产一线二线三线性视频 | 精品在线观看一区二区三区 | 成人免费观看视频大全 | 天天操夜夜操天天射 | 精品999久久久 | 91爱爱网址| 亚洲成人蜜桃 | 国内精品久久久久影院优 | 亚洲精品高清在线 | 免费看一级黄色大全 | 在线观看成人av | 黄色亚洲在线 | 国产中文字幕网 | 在线观看视频黄 | 亚洲精品国产精品国产 | 日本午夜免费福利视频 | 天天爱天天操天天射 | 丁香 婷婷 激情 | av千婊在线免费观看 | 人人爱在线视频 | av在线日韩 | 日韩欧美黄色网址 | 成人国产精品久久久 | 在线观看亚洲免费视频 | 国产免费大片 | 日本中文字幕网址 | 免费视频xnxx com | 亚洲天堂免费视频 | 成人免费xxx在线观看 | 日韩精品一区二区三区视频播放 | 免费看片亚洲 | 夜夜躁狠狠躁 | 四川bbb搡bbb爽爽视频 | 久久久久久久久久免费视频 | 国产精品毛片久久久久久 | 欧美大片第1页 | 婷婷黄色片 | 日韩一区二区免费在线观看 | 五月天六月丁香 | 91完整视频 | 精品欧美一区二区在线观看 | www.一区二区三区 | 国产精品av在线免费观看 | 亚洲精品乱码久久久久久高潮 | 色哟哟国产精品 | 久久久久国产精品免费网站 | 国产字幕在线看 | 香蕉精品视频在线观看 | 99色视频 | 中字幕视频在线永久在线观看免费 | 国产美女精品视频 | 欧美欧美| 国产精品21区 | 97超碰站| 中文 一区二区 | 成人免费网站在线观看 | 麻豆国产视频 | 91精品国产欧美一区二区 | av片在线观看免费 | 69视频在线| 成人国产精品免费 | 欧美日韩国产二区三区 | 成人动图| 国产视频一区二区在线播放 | 成人资源在线播放 | 91精品视频免费在线观看 | 欧美精品乱码久久久久久按摩 | 久久国产精品久久久久 | 日韩1级片 | 国产资源在线免费观看 | av免费在线网站 | 毛片网站免费在线观看 | 欧美日韩大片在线观看 | 欧美精选一区二区三区 | 免费亚洲黄色 | 青青草国产精品 | 久久草网站| 亚洲激情p | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 在线成人看片 | 91中文字幕视频 | 欧美日韩免费一区二区 | 91精品国产欧美一区二区成人 | 日韩精品视 | www操操| 在线 视频 一区二区 | 亚洲精品国产精品国自产在线 | va视频在线观看 | 日韩三区在线 | 韩日av在线 | 色婷婷99| 黄色成人av | av网站在线观看播放 | 操操操干干干 | 三级小视频在线观看 | 国产精品久久久久免费观看 | 国产一级在线 | 欧美色图30p | 99精品99 | 久久99最新地址 | 亚洲精选视频在线 | 精品毛片一区二区免费看 | 免费看污黄网站 | 黄色一级在线免费观看 | 五月婷婷色| 日韩在线资源 | 精品国产自在精品国产精野外直播 | 97在线观看免费高清完整版在线观看 | 97超碰在线人人 | 久久视频免费观看 | 国产精品美女网站 | av在线小说 | 最新av在线网站 | 久久亚洲美女 | 波多野结衣电影一区二区 | 九九九在线| 亚洲成人高清在线 | 色噜噜日韩精品一区二区三区视频 | 久久小视频| 国产二区视频在线观看 | 99视频在线看 | 永久免费在线 | 三上悠亚一区二区在线观看 | 国产精品久久一区二区三区不卡 | 国产精品 中文字幕 亚洲 欧美 | 久章操 | 欧美特一级片 | 亚洲精品美女久久 | www.xxxx欧美| 精品亚洲欧美无人区乱码 | 日韩高清片 | 91麻豆精品国产91 | 黄色成人在线观看 | 在线视频日韩欧美 | 日本中文字幕在线免费观看 | 美女视频黄频大全免费 | 四虎在线视频 | 黄色av一级片 | 亚洲电影影音先锋 | 三级动态视频在线观看 | 国产精品乱码一区二区视频 | 久久久久久久久久久久亚洲 | 国产精品久久久久永久免费看 | 成人久久18免费网站麻豆 | 国产精品一区二区久久精品爱微奶 | 97理论片| 成年美女黄网站色大片免费看 | 热久久免费视频 | 91黄色影视 | 91精品啪在线观看国产81旧版 | 中文在线亚洲 | 亚洲午夜久久久久 | 国产欧美在线一区二区三区 | 91九色九色| 久久免费观看少妇a级毛片 久久久久成人免费 | 日本公乱妇视频 | 91成人免费在线视频 | 免费在线观看黄色网 | 国产精品久久99 | 天天色图 | 伊人国产在线播放 | 成人在线播放网站 | 在线观看亚洲免费视频 | 色婷婷在线观看视频 | 精品一区二区在线免费观看 | 中文字幕日韩在线播放 | 少妇bbbb揉bbbb日本 | 久久久精品成人 | 日韩 国产 | 成人亚洲精品国产www | 久草在线久草在线2 | 中文字幕丝袜制服 | 人人插人人爱 | 国产短视频在线播放 | 久久午夜免费观看 | .精品久久久麻豆国产精品 亚洲va欧美 | 狠狠色伊人亚洲综合网站野外 | 久久久久久高清 | 欧美精品在线视频观看 | 日本最大色倩网站www | 国产中文字幕av | 免费日韩一区二区三区 | 伊人夜夜 | 四虎www| 久久亚洲影视 | 亚洲人成免费 | 天天天干天天射天天天操 | 亚洲日本va在线观看 | 国产一二区在线观看 | 麻豆94tv免费版 | 亚洲精品视频免费在线 | 中文字幕刺激在线 | 国内精品在线观看视频 | 国产精品99久久免费观看 | 成+人+色综合 | 国产黄a三级三级三级三级三级 | 亚洲一级免费电影 | 国产无套精品久久久久久 | 亚洲成a人片在线观看网站口工 | 成人高清在线观看 | 亚洲精品中文字幕在线 | 亚洲精品视频在线播放 | 亚洲国产av精品毛片鲁大师 | 激情xxxx| 精品福利视频在线 | 日日摸日日碰 | 亚洲精品国产精品久久99热 | 欧美天天干 | 日韩精品一区二区在线观看 | 在线视频国产区 | 国内精品国产三级国产aⅴ久 | 国产精品久久久久影视 | 精品福利在线 | 日韩av电影中文字幕 | 国产最新在线观看 | 99久久精品久久久久久动态片 | 久久中文网| 精品国产成人av在线免 | 久久大香线蕉app | 五月开心六月伊人色婷婷 | 亚洲电影黄色 | 亚洲综合色视频在线观看 | 国产乱对白刺激视频在线观看女王 | 九九在线视频免费观看 | 亚洲成av人片在线观看 | 99免费在线视频观看 | 日韩在线免费电影 | 在线视频日韩 | 国产日韩一区在线 | aaa日本高清在线播放免费观看 | 亚洲视频久久久 | 天天天综合网 | 成 人 黄 色视频免费播放 | 国产无限资源在线观看 | 奇米影视在线99精品 | 91亚洲精品国偷拍自产在线观看 | 久久99久久99免费视频 | 日韩精品在线播放 | 色网站国产精品 | 日韩精品黄 | 日韩一区二区三区免费视频 | 国产成人精品免高潮在线观看 | 在线视频中文字幕一区 |