久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

使用 UNIX 進行文本處理

瀏覽:166日期:2024-06-21 10:28:17

Unix® 起源于簡單的文本處理,并且在它的命令行環境中保留了功能最強大的文本處理工具之一。通過將一系列簡單的命令組合在一起,可以完成復雜的文本轉換,UNIX 提供的工具允許您構建幾乎任何所需的文本處理引擎。

引言

在 UNIX® 誕生之初,人們不大熟悉這種新的操作系統,但他們很快找到了適當的切入點,大學中的研究人員需要一種像樣的文本處理環境。因為在那個時候,計算機的處理速度和內存容量有限,所以程序必須很小,并且相對比較簡單。這樣就產生了 UNIX 中著名的設計思想:“一組工具協同工作,以便完成一項任務。通過 UNIX 管道將幾種很小的、但功能強大的文本處理工具組合在一起,可以對文本進行各種方式的轉換和操作。

在本文中,您將簡要了解從文件和程序中獲得文本、使用 tr 命令對其進行簡單的轉換、使用 sed 命令進行復雜的搜索和替換操作。然后,您將使用 Perl 編程和腳本語言再次完成這些操作,這樣一來您就可以認識到,Perl 的功能非常強大,它可以替代 tr 和 sed 命令。

開始之前

如果您希望按照本文中的示例進行實驗,請確保您可以使用 UNIX 命令行環境。這可能是本地計算機中的終端模擬程序(在現代桌面中通常稱為 終端,如果您習慣使用 Windows®,那么可以使用 Cygwin)、或通過 SSH 訪問的遠程系統。

本文的示例所使用的 Shell 語法適用于 GNU Bash,有關需要使用的特定語法,請參考您的 Shell 手冊(或者可以考慮使用 Bash)。

對文本進行各種操作

在開始使用 UNIX 的各種文本實用程序操作文本之前,需要了解如何獲得文本。并且在進行這項工作之前,需要了解 UNIX 的標準輸入/輸出 (I/O) 流。

標準 C 庫(因而,每個 UNIX 程序)定義了三種標準流:輸入、輸出和錯誤。有時將它們稱為 stdin、stdout 和 stderr,這是在所有 C 程序中用來表示它們的全局變量。

當您在 Shell 中使用 > 操作符將程序輸出重定向到文件時,就可以將它的標準輸出 (stdout) 流發送到這個文件。例如:ls > this-dir 將 ls 的輸出發送到一個名為 this-dir 的文件。

當您在 Shell 中使用 < 操作符將程序輸入重定向到文件時,就可以將該文件中的內容輸入到該程序的標準輸入 (stdin) 流。例如:sort < this-dir 可以從名為 this-dir 的文件中讀取內容,并將其作為 sort 命令的輸入。

另一個常用于重定向標準流的操作符是“|(管道)操作符,它可以將左側程序的標準輸出流連接到右側程序的標準輸入流。例如:ls | sort 和前面的兩個示例完成相同的任務,并且無需臨時文件,ls 的輸出直接進入 sort 命令。

如果您仔細觀察,那么可能會發現,前面的這些示例中并沒有出現標準錯誤 (stderr) 流。與標準輸出流一樣,可以對 stderr 進行重定向或使用管道進行傳輸,但是您需要告訴 Shell 您希望處理 stderr 而不是 stdout。

可以使用 2> 操作符將標準錯誤流重定向到文件。在處理生成有用的錯誤輸出的命令時,您經常會看到這個操作符,比如用于編譯 Unix 程序的 make 工具:make 2> build-errors。

這個命令運行了 make,并將任何錯誤信息發送到 build-errors 文件。與之類似,您可以使用 2| 將 stderr 通過管道傳遞到另一個程序。

如果您對具體的細節感興趣,那么其他的流也有與之對應的數字,盡管很少使用到它們(0 表示標準輸入,1 表示標準輸出),除了在一個非常常見的操作符中。在清單 1 所示的示例中,2>&1 操作符將標準錯誤流連接 到標準輸出流。與 > 操作符組合在一起,您可以使 stderr 和 stdout 輸出到相同的文件中。

清單 1. 將標準錯誤流連接到標準輸出流

make > build-output 2>&1

命令

有兩個常用來生成文本輸出的標準 Unix 命令:cat 和 echo。

cat 命令讀取參數中指定的每個文件,并將這些文件的內容寫入到 stdout。echo 命令將其參數寫入到 stdout。您常常會發現它們作為更復雜的命令管道中的一部分(請參見清單 2)。

清單 2. 使用 cat 和 echo

cat file1 file2 ... filenecho arguments...

但如果您只需要文件中開頭的部分或結尾的部分,那又應該如何呢?cat 有兩種可用來完成這種任務的變種,稱為 head 和 tail(請參見清單 3),它們分別可以顯示開頭的或結尾的 10 行內容,您可以使用 -n 選項為它們指定不同的行數。

清單 3. 使用 head 和 tail

head file1 file2 ... filentail file1 file2 ... filen

tail 命令還有一個有用的選項 -f (follow)。該選項告訴 tail 打印指定文件的最后 10 行,但是它不僅打印已有的內容,還會等待該文件中將要出現的更多內容,并對其進行打印。您可以使用該選項接著 顯示錯誤日志中的輸出,例如,要在將錯誤寫入到日志的同時查看這些錯誤。

轉換文本

既然您已經了解了至少 5 種生成文本的方式,下面讓我們來看一些進行簡單文本轉換的示例。

tr 命令允許您將一個集合中的字符轉換為另一個集合中相應的字符。讓我們來看一些示例(清單 4),以了解其工作方式。

清單 4. 使用 tr 對字符進行轉換

echo "a test" | tr t pecho "a test" | tr aest 1234echo "a test" | tr -d techo "a test" | tr '[:lower:]' '[:upper:]'

研究這些命令的輸出結果(請參見清單 5),可以看出 tr 的工作方式(提示:它直接使用第二個集合中相應的字符來代替第一個集合中的字符)。

清單 5. tr 進行了哪些工作?

chrish@dhcp3 [199]$ echo "a test" | tr t pa pespchrish@dhcp3 [200]$ echo "a test" | tr aest 12341 4234chrish@dhcp3 [201]$ echo "a test" | tr -d ta eschrish@dhcp3 [202]$ echo "a test" | tr '[:lower:]' '[:upper:]'A TEST

第一個和第二個示例都很簡單,將一個字符替換為另一個字符。第三個示例使用了 -d 選項 (delete),它從輸出中徹底刪除了指定的字符。這個選項通常用來從 Dos 文本文件中刪除回車,以將其轉換為 Unix 文本文件(請參見清單 6)。最后一個示例使用了字符類([: :] 中的名稱),以將所有的小寫字母轉換為大寫字母。可移植操作系統接口標準(POSIX 標準)字符類包括:

alnum:字母數字字符 alpha:字母字符 cntrl:控制(非打印)字符 digit:數字字符 graph:圖形字符 lower:小寫字母字符 print:可打印字符 punct:標點符號 space:空白字符 upper:大寫字符 xdigit:十六進制字符

清單 6. 將 DOS 文本文件轉換為 UNIX 文本文件

tr -d '' < input_dos_file.txt > output_unix_file.txt

盡管 tr 命令表示了 C locale 環境變量(有關這些環境變量更多的信息,可以使用 man locale),但是不要指望它能夠對 UTF-8 文檔進行任何合理的操作,如能夠使用合適的大寫字符替換小寫重音字符。tr 命令最適合于 ASCII 和其他標準 C 區域設置。

使用 sed 進行復雜的搜索和替換

tr 命令所提供的單字符替換(或刪除)功能非常適用于特定的解決方案,但是這些功能并不是很靈活。如果您需要將一個單詞替換為另一個單詞,或將連續的空格和制表符替換為一個空格,那又應該怎么辦呢?

幸運的是,您可以使用 sed 命令 (Stream EDitor),它提供了功能強大的正則表達式 匹配和替換。正則表達式是使用各種構件構建的復雜模式規范,并且隨著模式變得越來越復雜,它看起來就像是調制解調器的線路噪聲。本文并不打算詳細地介紹正則表達式,但是在本文中,您將簡單了解 sed 所使用的一些有用的模式。

在清單 7 中,您可以看到 sed 命令的基本格式。模式是用來匹配輸入(通常可以使用管道從另一個程序輸入,或者重定向于文本文件)的正則表達式,替換是指插入某些文本并用其代替那些與模式相匹配的文本。標志是用來控制替換行為的單個字符。最常用的標志是 g(將替換應用于所有匹配模式的非重疊實例,而不僅僅是第一個匹配項)。

實際上,模式和替換可以是各種各樣的內容,并且它們之間不需要像在 tr 命令中那樣具有 1:1 的關系。

清單 7. sed 命令

sed -e s/pattern/replacement/flags

最簡單的模式是一個或多個字符組成的字符串。如清單 8 所示,例如將單詞 one 替換為單詞 another。

清單 8. 最簡單的正則表達式

chrish@dhcp3 [334]$ echo "Replace one Word" | sed -e s/one/another/Replace another word

可以使用方括號將一個或多個字符括起來,以創建一個集合,該集合中的任何字符都可以匹配。如清單 9 所示,讓我們將所有的元音字母替換為下劃線。

清單 9. 匹配集合中的任何字符

chrish@dhcp3 [338]$ echo "This is a test" | sed -e s/[aeiouy]/_/gTh_s _s _ t_st

請注意,示例中使用了 g 標志,以便將模式/替換應用于所有的匹配項,而不僅僅是第一個匹配項。

sed 命令也可以理解 tr 命令所支持的那些命名字符類,POSIX 對這些字符類進行了定義,但是本文中的語法稍有不同。清單 10 顯示了如何替換任何空白字符(制表符、空格等等):

清單 10. 根據命名字符類匹配內容

chrish@dhcp3 [345]$ echo -e 'hellothere' hello  therechrish@dhcp3 [346]$ echo -e 'hellothere' | sed -e 's/[[:space:]]/, /'hello, there

echo 命令的 -e 標志用來告訴該命令擴展 C 風格的轉義字符,在本示例中,它會把 轉換為制表符。

您還可以使用“.(點號)匹配任何單個的字符。如果您需要處理一些略有變化的數據,或者包含難以進行轉義的特殊字符的數據,那么使用這個符號是非常方便的。例如,在匹配引號時,我經常使用 .,所以我不需要在 Shell 中對引號進行轉義。清單 11 顯示了一個正則表達式初學者在使用這個模式時出現的問題。

清單 11. 這可能并不是想要的結果

chrish@dhcp3 [339]$ echo "This is a test" | sed -e s/./_/g______________

既然您已經了解了這些非常基本的內容,下面介紹一些附加模式修飾符,要使用高級 正則表達式,您現在還可以使用 -E 選項代替 -e。? 字符表示匹配前面模式元素的零個或一個實例,* 字符表示匹配前面元素的零個或多個實例。+ 字符表示匹配一個或多個前面的元素。^ 字符匹配行首,而 $ 則匹配行尾。清單 12 顯示了實際應用中的情況。

清單 12. 實際應用中的多個匹配項

chrish@dhcp3 [356]$ echo "hellooooo" | sed -E 's/o?$/_/g'helloooo_chrish@dhcp3 [357]$ echo "hellooooo" | sed -E 's/o*$/_/g'hell_chrish@dhcp3 [358]$ echo "hellooooo" | sed -E 's/o+$/_/g'hell_

如果使用圓括號將模式元素括起來,您可以在替換字符串中使用匹配的內容。這些元素稱為組,它們使得正則表達式搜索和替換操作的功能變得非常強大,但是卻很難理解。例如,在清單 13 中,您匹配一個或多個 l (el) 字符,并且后面跟著零個或多個 o 字符。依次使用第二組和第一組中的內容對其進行替換,實際上是對它們進行交換。請注意這個模式中各個組的引用方法,即反斜杠加上該組的序號。

清單 13. 匹配組

chrish@dhcp3 [361]$ echo "hellooooo" | sed -E 's/(l+)(o*)$/21/g'heoooooll

通過在大括號中指定匹配的數目,您可以匹配特定數目的模式。例如,模式 o{2} 將匹配兩個(僅僅兩個)o 字符。

對了,還有最后一個內容,通過使用 字符對其進行轉義,您可以在模式中使用這些特殊字符的字面內容(即作為其本身)。

將其組合在一起

既然已經向您介紹了一些非常簡單的正則表達式,那么讓我們來嘗試一些有用的內容。給定 ls -l(文件長 清單)的輸出,您將從中提取權限信息、大小和名稱。清單 14 顯示了要進行處理的 ls -l 輸出示例。

清單 14. ls -l 的典型輸出

chrish@dhcp3 [365]$ ls -l | taildrwx------  3 chrishwheel  102 Jun 14 21:38 gsrvdir501drwxr-xr-x  2 chrishwheel68 Jun 16 16:01 hsperfdata_chrishdrwxr-xr-x  3 root wheel  102 Jun 14 23:38 hsperfdata_root-rw-r--r--  1 root wheel  531 Jun 14 10:17Illustrator_activation.plist-rw-r--r--  1 root wheel  531 Jun 14 10:10 indesign_activation.plist-rw-------  1 nobodywheel24 Jun 16 16:01 objc_sharing_ppc_4294967294-rw-------  1 chrishwheel  132 Jun 16 23:50 objc_sharing_ppc_501-rw-------  1 security wheel24 Jun 16 10:04 objc_sharing_ppc_92-rw-r--r--  1 root wheel  531 Jun 14 10:05 Photoshop_activation.plist-rw-r--r--  1 root wheel  928 Jun 14 10:17 serialinfo.plist

正如您所看到的,這里一共有 7 列:

權限 鏈接的數目 屬主 組 大小 最后的修改時間 名稱

讓我們來建立一些正則表達式,以匹配其中的每一列:

.([r-][w-][x-]){3}—權限(使用 . 匹配第一個字符,因為它可能是幾個不同的特殊字符中的任何一個。) [[:digit:]]+—鏈接的數目 [A-Za-z0-9_-.]+ -—屬主(您還可以使用這個模式進行組匹配。) [[:digit:]]+—大小 .{3} [0-9 ]{2} [0-9 ][0-9]:[0-9][0-9]—修改時間(您可以對這個模式進行一些簡化,因為所有的文件都在 6 月份進行的修改,所以您可以確切地指定月份的名稱。) .+$—名稱(在這些內容之后,您需要匹配所有的字符,直到行尾。)

在上述模式之間,必須使用 [[:space:]]+ 對它們進行連接,因為您并不知道這些列之間究竟是使用空格或制表符,還是兩者的組合進行分隔。您還需要將權限、大小和名稱放到組中,以便可以在替換中使用它們。如清單 15 所示,正則表達式很快就變得難以理解。

清單 15. 完成后的正則表達式實在難以理解!

(.([r-][w-][x-]){3})[[:space:]]+[[:digit:]]+[[:space:]]+([A-Za-z0-9_-.]+[[:space:]]+){2}([[:digit:]]+)[[:space:]]+.{3} [0-9 ]{2} [0-9][0-9]:[0-9][0-9][[:space:]]+(.+)$

如果您仔細研究這個可怕的正則表達式模式,您將發現 5 個組:

完整的權限塊 權限塊中最后匹配的 rwx 組 組(該模式的屬主/組部分中最后匹配的內容) 大小 名稱

在清單 16 中,您將更改 ls -l 的輸出以顯示文件名、權限和大小。

清單 16. 對輸出進行重組

chrish@dhcp3 [382]$ ls -l | tail | sed -E's/(.([r-][w-][x-]){3})[[:space:]]+[[:digit:]]+[[:space:]]+([A-Za-z0-9_-.]+[[:space:]]+){2}([[:digit:]]+)[[:space:]]+.{3} [0-9 ]{2} [0-9][0-9]:[0-9][0-9][[:space:]]+(.+)$/5 (1) has 4 bytes of data/'gsrvdir501 (drwx------) has 102 bytes of datahsperfdata_chrish (drwxr-xr-x) has 68 bytes of datahsperfdata_root (drwxr-xr-x) has 102 bytes of dataIllustrator_activation.plist (-rw-r--r--) has 531 bytes of dataindesign_activation.plist (-rw-r--r--) has 531 bytes of dataobjc_sharing_ppc_4294967294 (-rw-------) has 24 bytes of dataobjc_sharing_ppc_501 (-rw-------) has 132 bytes of dataobjc_sharing_ppc_92 (-rw-------) has 24 bytes of dataPhotoshop_activation.plist (-rw-r--r--) has 531 bytes of dataserialinfo.plist (-rw-r--r--) has 928 bytes of data

成功了!您已經完成了對輸出結果的轉換。

使用 Perl 完成相應的工作

Perl 編程和腳本語言(請參見參考資料部分)的功能非常強大,通常可用來取代前面介紹的 tr 和 sed 命令。通常可以在命令行中直接輸入簡短的 Perl 程序,有時它可以完成比 tr 或 sed 命令行更多的操作。

Perl 的 -p 選項告訴它讀取和處理標準輸入中的每行內容,并將結果打印到標準輸出。-e 選項允許您在命令行中指定一個 Perl 表達式(實際上是一個程序)。

清單 17 顯示了如何使用 Perl 完成清單 5 中的示例。

清單 17. 使用 Perl 完成 tr 的工作

chrish@dhcp3 [248]$ echo a test | perl -p -e 'tr/t/p/;'a pespchrish@dhcp3 [249]$ echo a test | perl -p -e 'tr/aest/1234/;'1 4234chrish@dhcp3 [250]$ echo a test | perl -p -e 'tr/t//d;'a eschrish@dhcp3 [251]$ echo a test | perl -p -e 'tr/a-z/A-Z/;'A TEST

Perl 的 tr 語句具有不同的語法,它更像 sed 的搜索和替換表達式。另請注意,您在最后一個示例中指定了小寫和大寫字符的范圍。

Perl 中的正則表達式支持非常優秀,并且上面的 sed 示例可以作為有效的 Perl 語句正常工作。清單 18 使用 Perl 顯示了清單 16 中的 ls -l 示例,除了 Perl 命令行語法之外,不需要對其他的內容進行更改。

清單 18. 使用 Perl 重組 ls 的輸出

chrish@dhcp3 [384]$ ls -l | tail | perl -p -e's/(.([r-][w-][x-]){3})[[:space:]]+[[:digit:]]+[[:space:]]+([A-Za-z0-9_-.]+[[:space:]]+){2}([[:digit:]]+)[[:space:]]+.{3} [0-9 ]{2} [0-9][0-9]:[0-9][0-9][[:space:]]+(.+)$/5 (1) has 4 bytes of data/'gsrvdir501 (drwx------) has 102 bytes of datahsperfdata_chrish (drwxr-xr-x) has 68 bytes of datahsperfdata_root (drwxr-xr-x) has 102 bytes of dataIllustrator_activation.plist (-rw-r--r--) has 531 bytes of dataindesign_activation.plist (-rw-r--r--) has 531 bytes of dataobjc_sharing_ppc_4294967294 (-rw-------) has 24 bytes of dataobjc_sharing_ppc_501 (-rw-------) has 132 bytes of dataobjc_sharing_ppc_92 (-rw-------) has 24 bytes of dataPhotoshop_activation.plist (-rw-r--r--) has 531 bytes of dataserialinfo.plist (-rw-r--r--) has 928 bytes of data

這樣做的優點在于,您可以使用 sed 或 Perl 完善正則表達式,并且在只包含其中某一個的系統中,您仍然可以它們。使用 Perl,您可以獲得全方位的編程結構,可以充分地利用它們進行更復雜的文本處理。

總結

使用像 sed 和 Perl 這樣功能強大的工具,以及神奇的正則表達式,您可以直接通過 Unix 命令行輕松地完成復雜的文本處理任務。這使得您可以有效地將多個命令組合在一起,以正確地完成文本處理工作。

標簽: Unix系統
主站蜘蛛池模板: 国产欧美精品一区aⅴ影院 毛片视频网站 | 久久久久久久国产精品视频 | 国产精品日韩精品 | www.久久精品 | 日韩在线观看视频一区二区三区 | 一区二区三区精品视频 | 天堂精品一区二区三区 | 国产精品美乳一区二区免费 | 国产麻豆乱码精品一区二区三区 | 欧美久久久久久久久久伊人 | zzz444成人天堂7777 | 欧美日韩中文字幕在线播放 | 久久久精品网 | 视色网站 | 北条麻妃一区二区三区中文字幕 | 国产第一页在线播放 | 蜜臀视频在线观看 | 日韩爱爱视频 | 成人午夜视频在线观看 | 久久先锋| 日韩av一区二区三区在线观看 | 成人免费精品 | 亚洲午夜精品 | 国产精品久久久久久久久小说 | 理论片免费在线观看 | 久久精品性 | av在线免费观看一区二区 | 国产精品69毛片高清亚洲 | 亚洲高清在线观看 | 毛片国产 | 国产亚洲精品综合一区91555 | 国产精品第一国产精品 | 亚洲成人精品视频 | 日韩2区 | 日韩国产在线 | 91精品国产91综合久久蜜臀 | 日韩综合网 | 久久久久久国产精品 | yy6080久久伦理一区二区 | 中文字幕第100页 | 操夜夜| 中文日韩在线 | 精品影院| 午夜tv免费观看 | 久久精品一二三四 | 三级欧美在线观看 | 国产综合区 | 特黄视频 | 综合色婷婷一区二区亚洲欧美国产 | av免费网站| 日韩在线视频一区 | 日韩爱爱免费视频 | 免费观看一级毛片 | 精品91久久久 | 免费成人av网 | 久久中文在线观看 | 成人国产一区二区 | 欧美一级片在线 | 国产一级免费视频 | 国产精品视频网站 | 中文字幕在线观看 | 久久久久亚洲美女啪啪 | 国产伦精品一区二区三区高清 | 国产香蕉视频在线播放 | 九九精品视频在线 | 少妇黄色| www.久久视频 | 日本久久久久久久 | 天天爽夜夜爽夜夜爽精品视频 | 经典法国性xxxx精品 | 亚洲综合在线网 | 精品国偷自产国产一区 | 午夜私人影院 | 欧美亚洲另类丝袜综合网动图 | 天天干天天干天天干天天射 | 成人av免费在线观看 | 色综合国产| 国产精品视频一区二区免费不卡 | 久久精品一区 | 久久久亚洲精品中文字幕 | 麻豆国产露脸在线观看 | 91在线免费看 | 欧美日一区二区 | 国产成人综合在线 | 午夜日韩 | 久久综合九色综合欧美狠狠 | 久久综合网址 | 亚洲日本精品视频 | 欧美成年黄网站色视频 | 国产成人午夜 | 国产成人精品久久 | 亚洲久草| 91九色在线观看 | 欧美日韩视频 | 亚洲午夜视频 | 99久久精品免费看国产免费软件 | 日韩一| 看毛片的网站 | 蜜臀91精品国产高清在线观看 | 天天操网址| 免费看的av | 亚洲综合日韩 | 亚洲一区精品在线 | 色视频免费在线观看 | 亚洲人成在线观看 | 欧美a级成人淫片免费看 | 欧美中文 | 国产2区| 国产在线中文字幕 | 91九色在线 | 日本一级毛片免费看 | 全黄大全大色全免费大片 | 久久久网| 国产精品高颜值在线观看 | 亚洲成熟少妇视频在线观看 | 亚洲欧美一区二区三区在线 | 一级毛片免费看 | 在线免费观看毛片 | 久久久久一区二区 | 暖暖av | 国家aaa的一级看片 操操操夜夜操 | www夜夜操com| 91精品久久久久久久久久入口 | 中文字幕国产区 | 一二三区字幕免费观看av | 久久精品成人 | 天天干狠狠| 亚洲国产精品一区 | 午夜日韩| 麻豆av电影在线观看 | 天天操天天干视频 | 在线免费色视频 | 国产成人亚洲综合 | 精品一区二区三区免费 | 99精品免费观看 | 日韩在线免费观看视频 | 日韩在线亚洲 | 成人免费看黄 | 欧美激情一区二区三区蜜桃视频 | 久久国产精品99精国产 | 亚州中文字幕 | 日韩激情免费 | avmans最新导航地址 | 亚洲日本欧美日韩高观看 | 久久久久久九九 | 亚洲在线 | 亚洲精品日韩激情在线电影 | 夜夜骑日日操 | 成人免费视频网址 | 伊人网在线免费观看 | 国产精品456在线影视 | 午夜电影网址 | 91精品在线观看入口 | 精品成人免费一区二区在线播放 | 久久国产精品一区二区三区 | 国产精品久久久久久久久 | 亚洲网站久久 | 久久不射网| 毛片91| 91丨九色丨国产在线 | 中文字幕日韩在线 | 2022天天操 | 婷婷色av| 91久久看片| av资源中文在线天堂 | 国产在线精品一区二区三区 | 国产成人精品亚洲777人妖 | 97国产精品视频人人做人人爱 | 日日做 | 国产欧美精品一区二区三区四区 | 精品久久影院 | 国产成人免费视频网站高清观看视频 | 亚洲高清视频在线观看 | 在线视频不卡一区 | 午夜影院在线观看免费 | 欧美精品第一页 | 成人激情视频在线观看 | 精品网站www | 日本做暖暖视频高清观看 | 91麻豆精品一二三区在线 | 一区二区三区四区日韩 | 日韩欧美久久 | 成人综合社区 | 黑人巨大精品欧美一区免费视频 | 亚洲 欧美日韩 国产 中文 | 久热精品视频 | 亚洲精品中文字幕 | 欧美一级高清在线 | 久久精品免费视频观看 | 亚洲欧美在线免费观看 | 亚洲国产一区二区三区四区 | 很黄很污的网站 | 在线观看v片 | japan国产精选videos | 5060毛片| 欧美成年黄网站色视频 | 欧美一区二区三区精品 | 日韩久久在线 | 97视频精品 | 精品日韩一区二区 | 在线观看免费视频a | 日韩欧美一区二区视频 | 一区在线视频 | 韩日精品 | 亚洲天堂久久 | 久久久久久久精 | 日韩一区在线播放 | 亚洲欧美一区二区三区在线 | 亚洲成人一区二区 | 成人精品视频一区二区三区 | 一级免费片 | 日本免费不卡 | 国产综合久久久久久鬼色 | 91超碰在线观看 | 一级片大全 | 成人性视频在线播放 | 成人午夜影院 | 婷婷久久综合 | 亚洲精品一区中文字幕乱码 | 免费观看一级毛片 | 91在线区 | 成人免费观看视频 | 亚洲h视频在线观看 | 91看片| 黑人巨大精品欧美黑白配亚洲 | 国产欧美日韩精品一区 | 国产一区二区电影 | 国内精品一区二区三区 | 国产精品欧美一区二区三区不卡 | 欧美国产日韩在线 | 国产成人高清精品免费5388 | 国产一区二区av | 欧美国产一区二区三区 | 国产 在线 | 日韩 | 在线观看免费黄色 | 偷拍电影一区二区三区 | 香蕉大人久久国产成人av | 亚洲免费网站 | 成人1区2区 | 午夜视频黄 | 亚洲色图第八页 | 碰碰视频 | 91影院在线观看 | 99国产精品一区 | 很黄很色很爽的视频 | 搞黄免费视频 | 色综合天天天天做夜夜夜夜做 | 日韩欧美一区二区在线观看 | 一区二区三区欧美在线 | 国产激情视频网 | 九九精品视频在线 | 久久精品成人一区二区三区蜜臀 | 欧美亚洲国产一区 | 99精品全国免费观看视频软件 | 一区二区三区精品视频 | 久久久久久毛片免费播放 | 欧美爱爱视频 | 久久久久久免费毛片精品 | 日韩精品 电影一区 亚洲 | 久久久91| 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲一级黄色 | 国产免费一级特黄录像 | 国产h视频在线观看 | 亚洲国产1区 | 少妇精品视频在线观看 | 黄网在线免费观看 | 超碰一区二区三区 | 亚洲视频免费看 | 国产精品日日 | www.欧美 | 91精品国产色综合久久 | 婷婷毛片 | 国产成人在线看 | 日日射天天干 | 成人看片在线 | 美女国产 | 成人一区电影 | 一区二区三区视频免费 | 91精品一区二区 | 欧美日韩综合一区 | 亚洲第一se情网站 | 91精品国产99久久久 | 久久不卡日韩美女 | 久久精品91 | 香蕉成人啪国产精品视频综合网 | 国产成人精品一区二区 | 国产99久久 | 国产ts余喵喵和直男多体位 | 国产最好的精华液网站 | 最近最新中文字幕 | 色图综合 | 国产综合亚洲精品一区二 | 最新中文字幕在线 | 91视频免费在线 | 国产午夜精品久久久久久久 | 久草天堂| 日本精品一区二区三区在线观看视频 | 一区二区在线 | 国产女爽爽视频精品免费 | 日日操视频 | 一区二区免费视频 | 国产精品久久久久久久久久 | 免费观看特级毛片 | 日韩一区精品视频 | 国产成人免费视频网站高清观看视频 | 午夜精品一区二区三区在线播放 | 国产九色视频 | 日本一区二区三区免费观看 | 国产成人精品一区二区三区四区 | 白浆在线 | 欧美精品1区2区3区 国产女无套免费网站 | 亚洲免费在线观看 | 国产精品久久久麻豆 | 一区二区三区国产 | 欧美黄色性视频 | 中文字幕一区二区三 | 一区二区三区影院 | 中文字幕日韩欧美一区二区三区 | 91视频分类 | 欧美精品成人一区二区三区四区 | 欧美日韩午夜 | 久久久久久久av | concern超碰在线 | 北条麻妃国产九九九精品小说 | 成人亚洲视频 | 亚洲高清在线观看 | 日韩欧美网 | 97超碰免费 | 69久久久 | 三级色黄| 91免费看片| 免费三级电影网站 | 国产一级黄色大片 | 精品91| 黄色av网站在线观看 | 亚洲性爰| 欧美一级黄色片网站 | 激情六月综合 | 中文字幕不卡在线 | 免费成人在线观看 | 中文字幕乱码亚洲精品一区 | 国产成人啪精品午夜在线观看 | 激情视频在线观看 | 视频1区2区 | 99久精品| 在线日韩 | 国产主播福利 | 操人网址| 日韩一区二区在线电影 | 国产成人精品久久 | 国产成人综合av | 精品国产乱码久久久久久久软件 | 精品久久久久久久人人人人传媒 | 91麻豆精品国产91久久久久 | 欧美一区二区精品 | 精品国产乱码久久久久久1区2区 | 韩日视频在线观看 | 久久av网 | 欧美成人一区二区三区片免费 | 色一级| 国产亚洲精品精品国产亚洲综合 | 久久精品国产一区二区电影 | 在线观看视频一区二区三区 | 嫩草影院在线观看91麻豆 | 久久一区二区三区四区五区 | 男人天堂网av | 国产a√| 日本国产一区二区 | 麻豆久久久久久 | 久久久久网站 | 日韩成人在线播放 | 久久久久久久99精品免费观看 | 欧美激情在线播放 | 国产精品夜间视频香蕉 | 久草福利| 国产精品久久久久一区二区三区 | 中文字幕一区二区三区乱码在线 | 看亚洲a级一级毛片 | 久久亚洲一区 | 日本亚洲最大的色成网站www | 北条麻妃国产九九九精品小说 | 黄色骚片 | 日韩视频一区二区三区 | 亚洲欧洲日韩 | 国产精品久久久久久久久久久久久久 | 国产欧美视频在线 | 精品国产免费久久久久久尖叫 | 日批免费在线观看 | 热久久影院 | 福利影院在线观看 | 精品日韩av | a级毛片免费高清视频 | 久久精品成人一区二区三区蜜臀 | 久久成人一区 | 日韩一区电影 | 999精品在线| 日韩午夜场| 久久久亚洲 | 99热激情| 亚洲精品久久久 | 天天看夜夜爽 | 波多野结衣精品 | 狠狠爱亚洲 | 99精品欧美一区二区三区综合在线 | 欧洲免费av | 久草热8精品视频在线观看 亚洲区在线 | 中文字幕一区二区三区不卡 | 精品久久久久久久久久久久久久 | 亚洲视频观看 | 国产免费一区二区三区 | 日韩a∨精品日韩在线观看 山岸逢花在线 | 91在线看片 | 综合亚洲精品 | 欧美一级日韩 | 亚洲自啪 | 精品无码久久久久国产 | 久久99深爱久久99精品 | 欧美一级在线 | 久久成| 久久久午夜爽爽一区二区三区三州 | 黄色手机在线观看 | 蜜桃视频网站在线观看 | 久久国产精品视频 | 成人午夜电影在线 | 一本一本久久a久久精品综合妖精 | 亚洲精品亚洲人成人网 | 欧美日韩精品久久久 | 亚洲精品久久久一区二区三区 | 久久久天天 | 国产一级在线观看 | 欧美激情a∨在线视频播放 成人免费共享视频 | 日韩成人一级片 | 北条麻妃一区二区三区在线 | 日本不卡免费新一二三区 | 97碰碰碰 | 午夜视频在线 | 国产无套丰满白嫩对白 | 国产视频久久 | 91资源在线| 成人黄色免费 | 久久精品国产99国产 | 久久精品久久久 | 午夜视频在线观看网站 | 久久久久久久久久影院 | 午夜久久久久 | 岛国精品 | 男女羞羞网站 | 日韩一区二区三区在线观看 | 精品美女在线观看视频在线观看 | av一二三区 | 成人精品网站在线观看 | 制服 丝袜 激情 欧洲 亚洲 | 久久精品免费 | 一区二区三区在线免费看 | 天天操操 | 日本中文字幕视频 | 一区二区三区四区视频 | 后人极品翘臀美女在线播放 | 国产美女久久久 | 久久久久国产视频 | 亚洲最大免费视频 | 午夜免费视频 | 成人日韩 | 亚洲成人av在线播放 | 免费一区二区 | 国外成人在线视频网站 | 欧美性猛交一区二区三区精品 | 久久porn| 激情五月综合网 | 日日干夜夜干 | 国产精品毛片在线 | 草草草久久久 | 另类久久| 亚洲欧美福利视频 | 久久99国产精品久久99大师 | 999久久久国产精品 免费视频一区 | 欧美日韩国产综合网 | 大陆一级毛片免费视频观看 | 欧美日韩精品一区二区三区 | 国产精品粉嫩白浆在线观看 | 日韩视频中文字幕在线观看 | 精品日韩一区二区 | 免费在线国产 | 欧美日韩一区电影 | 在线高清av | 亚洲免费在线播放 | 欧美一区二区三区精品 | 亚洲成人动漫在线观看 | 综合中文字幕 | 日韩成人在线观看 | 久久久久国产一区 | 久久精品久久久 | 欧美在线一区二区三区 | 国产精品成人国产乱一区 | 成人免费视频观看视频 | 欧美一区永久视频免费观看 | 欧美日韩成人在线视频 | 欧美亚洲高清 | 久久国产精品久久久久久久久久 | 国产免费av网站 | 日韩小视频 | 国产精品自产av一区二区三区 | 成人在线观看av | 久久人| 特级毛片在线大全免费播放 | 亚洲欧美高清 | 偷拍电影一区二区三区 | 后人极品翘臀美女在线播放 | 国产成人精品一区二区视频免费 | 成人免费一区二区三区视频网站 | 亚洲欧美日韩另类精品一区二区三区 | 91在线视频| 国产欧美精品一区二区三区四区 | 激情久久av一区av二区av三区 | 91精品国产91久久久久久密臀 | 国产一区二区三区精品久久久 | 免费观看av毛片 | 99精品久久久久久久免费 | 91免费版在线看 | 精品一区二区三区在线观看视频 | 免费v片在线观看 | 亚洲国产91 | 九色av | www精品| 成人网址在线观看 | 亚洲免费在线观看 | 亚洲精品中文字幕中文字幕 | 国产欧美一区二区三区在线看 | 久久成人国产精品 | 五月婷婷丁香 | 国产精品成人国产乱一区 | 日韩亚洲在线 | a中文在线 | 91中文字幕在线观看 | 日韩三及片| 精品久久一区二区 | 免费看片一区二区三区 | 国产精品乱码一区二区三区 | 免费观看一级特黄欧美大片 | 日韩国产二区 | 一区二区三区四区av | 五月婷婷导航 | 九九九九九九精品任你躁 | 精品日韩一区二区 | 99视频在线 | 欧美在线亚洲 | 日本一区二区在线视频 | 日韩在线小视频 | www.久久| 天天爽天天操 | 黄色国产精品 | 狠狠色丁香婷婷综合 | 成人不卡 | 艳妇荡乳豪妇荡淫 | 激情五月婷婷综合 | 亚洲国产欧美在线 | 亚洲精品一二区 | 在线第一页 | 亚洲第一区在线 | 国产精品亚洲第一 | 91在线免费看 | a欧美 | 美女视频一区二区三区 | 成人h动漫免费观看网站 | 中文字幕一区二区三区不卡 | 亚洲九九 | 综合导航 | 国产第一区二区 | 一级做a爰片毛片 | 国产成人在线网站 | 国产精品18久久久 | 国产精品视频一二三区 | 国产高清一级毛片在线不卡 | 久久久久无码国产精品一区 | 亚洲一区精品在线 | 国产精品自产拍在线观看桃花 | 九九亚洲 | 久久久久综合狠狠综合日本高清 | 伊人天堂在线 | 欧美午夜精品久久久 | 亚洲经典视频在线观看 | 久久九九精品久久 | 精品一区二区三区久久 | 国产精品久久久一区二区 | 成人在线观 | 欧美三级视频在线播放 | 国产伦精品一区二区 | 亚洲欧美日韩国产综合 | 午夜影剧院 | 1000部精品久久久久久久久 | 91婷婷射 | 色婷婷av久久久久久久 | 亚洲精品视频在线看 | 色约约精品免费看视频 | 午夜影院免费 | 在线免费91| 99精品一区二区三区 | 亚洲成人日韩 | 国产 日韩 欧美 在线 | 亚洲久久在线 | 91精品国产91久久久久久最新 | 天天操,夜夜操 | 青青久久网 | 国产精品久久久久久久竹霞 | 精品国产乱码一区二区三区四区 | 日韩三级视频 | 黄色片在线观看视频 | 日韩欧美国产精品一区二区三区 | 国产精品69毛片高清亚洲 | 91在线精品一区二区三区 | 日韩免费在线观看视频 | 伊人色综合网 | 欧美精品成人在线视频 | 国产成人精品久久二区二区91 |