精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

開發者百寶箱:使用Bash清理數據

譯文 精選
系統 Linux
本文不僅會介紹相關命令,還逐步介紹了每個步驟背后的思考過程,解釋了我們為什么使用特定命令以及它們如何協同工作以解決常見的數據清理問題。

譯者 | 布加迪

審校 | 重樓

你是否已厭倦了使用臃腫的工具來處理雜亂的數據?本文介紹了如何使用Bash 清理和轉換數據集。

今天,我們將學習如何使用Bash清理數據,這是處理數據的任何人必備的一項技能。雖然我們許多人在處理數據時會使用PythonR,但也可以使用Bash快速高效地處理數據,可直接從命令行進行處理

本文不僅會介紹相關命令,還逐步介紹了每個步驟背后的思考過程,解釋我們為什么使用特定命令以及它們如何協同工作解決常見的數據清理問題。

讓我們開始吧

了解數據清理過程

在深入探討代碼之前,不妨先了解一下數據清理的實際含義。數據清理指將雜亂的原始數據轉化準確、完整、隨時可供分析的數據。這包括:

  • 處理缺失值
  • 修復格式問題
  • 刪除重復數據
  • 標準化不一致的數據
  • 依據業務規則驗證數據

因此,干凈的數據對于準確的分析和可靠的結果至關重要。垃圾進垃圾出”這個原則非常適用于數據科學(這并不奇怪)。

我們在本教程中將使用一個示例數據集users.csv 文件

了解的數據

在進行任何更改之前,了解在處理的數據很重要。不妨探究一些基本的檢查命令。

要查看文件的內容,可以使用cat 命令。

$ cat users.csv

輸出:

1,John,Smith,john.smith@example.com,2023-01-15,2023-03-20,125.99
2,Jane,Doe,jane.doe@example.com,2023-01-16,2023-03-21,210.50
3,Bob,Johnson,bob@example.com,2023-01-17,2023-03-22,0
4,Alice,Williams,alice.williams@example.com,2023-01-18,,75.25
5,,Brown,mike.brown@example.com,2023-01-19,2023-03-24,150.75
6,Sarah,Miller,sarah.miller@example.com,invalid_date,2023-03-25,95.00
7,David,Jones,david.jones@example.com,2023-01-21,2023-03-26,300.00
8,Lisa,Garcia,lisa.garcia@example.com,2023-01-22,2023-03-27,-50.00
9,James,Martinez,mymail@example.com,2023-01-23,2023-03-28,125.00

對于大型文件,這可能不切實際,于是我們有其他選擇。

head 命令默認顯示文件的前10 行。這對于快速檢查數據的結構和標題非常有用。

$ head users.csv

可以使用-n選項指定不同的行數。

$ head -n 5 users.csv

結果如下:

id,first_name,last_name,email,signup_date,last_login,purchase_amount
1,John,Smith,john.smith@example.com,2023-01-15,2023-03-20,125.99
2,Jane,Doe,jane.doe@example.com,2023-01-16,2023-03-21,210.50
3,Bob,Johnson,bob@example.com,2023-01-17,2023-03-22,0
4,Alice,Williams,alice.williams@example.com,2023-01-18,,75.25

同樣,tail默認顯示文件的最后10行。這有助于檢查日志文件或時間序列數據中的最新條目。

帶有-l標志的wc(字數統計)命令可以統計文件中的行數。這可以讓快速了解數據集的大小。

$ wc -l users.csv

輸出結果:

11 users.csv

可以使用以下命令查看文件結構:

$ column -t -s, users.csv | less -S

命令對于CSV文件尤其有用。下面不妨細述一下:

  • column 將輸出格式化為列
  • -t 指示它創建表格
  • -s 指定逗號為分隔符
  • less -S允許滾動瀏覽輸出而不換行

這為提供了格式良好的數據視圖,從而容易發現不一致的地方

查找和分析數據中的問題

我們對數據有了一番基本的了解,不妨識別具體的問題。

命令使用grep搜索連續的逗號(表示空字段),并使用-c來計數出現的次數。

$ grep -c ",," users.csv

這為我們提供了一種快速統計缺失值行的方法。

2

grep添加-n 標志可以顯示行號以及匹配項幫助我們精確定位缺失值的位置。

$ grep -n ",," users.csv

輸出:

5:4,Alice,Williams,alice.williams@example.com,2023-01-18,,75.25
6:5,,Brown,mike.brown@example.com,2023-01-19,2023-03-24,150.75

以下命令識別日期格式無效的行,具體來說在示例數據中查找文本invalid_date

$ grep -v -E '^[0-9]{4}-[0-9]{2}-[0-9]{2}$' users.csv | grep "invalid_date"

輸出:

6,Sarah,Miller,sarah.miller@example.com,invalid_date,2023-03-25,95.00

不妨查找購買金額為負數的記錄:

$ awk -F, '$7 < 0 {print $0}' users.csv

awk 命令可以

  • 使用-F指定逗號為字段分隔符
  • 檢查第7個字段purchase_amount是否小于 0
  • 如果條件成立,打印輸出整行

輸出:

8,Lisa,Garcia,lisa.garcia@example.com,2023-01-22,2023-03-27,-50.00

使用數據清理技術解決問題

我們已確定了問題所在,現在不妨逐一解決

處理缺失值

首先,我們將空字段替換為NULL

$ sed 's/,,/,NULL,/g; s/,$/,NULL/g' users.csv > users_cleaned.csv

sed 命令:

  • 將連續的逗號,,替換為,NULL,,使缺失值顯式顯示
  • 使用s/,$/,NULL/g 處理行尾的尾隨逗號
  • 將結果寫入名為users_cleaned.csv 的新文件

> 運算符將輸出重定向到新文件而不是屏幕。

我們可以用Unknown填充缺失的名字。

$ awk -F, 'BEGIN {OFS=","} {if ($2 == "") $2 = "Unknown"; print}' users.csv > users_cleaned.csv

awk 命令可以

  • 使用-F將輸入字段分隔符設置為逗號
  • 使用BEGIN {OFS=","} 將輸出字段分隔符也設置為逗號
  • 檢查第二個字段first_name是否為空
  • 將空值替換為Unknown”。
  • 打印輸出每一行(無論是否修改)

更正日期格式

sed 命令將文本“invalid_date替換為格式正確的日期。

$ sed 's/invalid_date/2023-01-20/g' users.csv > users_cleaned.csv

實際上,可能需要使用上下文中適用的日期,或者標記這些條目供進一步查看

處理負值

可以將負值替換為零。

$ awk -F, 'BEGIN {OFS=","} {if ($7 < 0) $7 = 0; print}' users.csv > users_cleaned.csv

命令可以

  • 檢查第七個字段purchase_amount是否小于 0
  • 將負值設置為 0
  • 如果原始值不是負數,則保留原始值。

組合多個數據清理步驟

實際上常需要對數據進行多重處理。以下是將它們組合成單個命令的方法: $ awk -F, 'BEGIN {OFS=","} {


# Fix missing first names
 if ($2 == "") $2 = "Unknown";

 # Fix invalid dates
 if ($5 == "invalid_date" || $5 == "") $5 = "2023-01-20";
 if ($6 == "") $6 = "2023-03-23";

 # Fix negative values
 if ($7 < 0) $7 = 0;

 print
}' users.csv > users_cleaned.csv

命令的工作原理如下:

  • 根據每個字段的特定驗證規則處理它們
  • 在一次數據傳遞中處理多個問題

這種方法比為每個問題運行單獨的命令來得更高效,尤其對于大型數據集而言。

驗證數據清理步驟

清理數據后,務必驗證所有問題是否已解決。

檢查是否沒有空字段:

$ grep -c ",," users_cleaned.csv

如果所有空字段都已正確填寫,則返回 0。

接下來,確保所有日期格式正確:

$ grep -v -E '[0-9]{4}-[0-9]{2}-[0-9]{2}' users_cleaned.csv | grep -v "signup_date"

如果所有日期格式正確,則返回結果為空

檢查所有購買金額是否為非負數:

$ awk -F, '$7 < 0 {print $0}' users_cleaned.csv

如果所有購買金額都為非負數,則返回結果為空。

轉換數據

數據清理完成后,可能需要將某些字段轉換不同的格式,或提取特定信息進行分析。

提取特定列

不妨僅提取姓名和郵箱地址(聯系信息):

$ cut -d, -f2,3,4 users_cleaned.csv > users_contact_info.csv

cut命令:

  • 使用-d,指定逗號為分隔符
  • 使用-f2,3,4 提取第 234個字段(first_name、last_name、email)
  • 創建一個僅包含這些列的新文件

只需要特定信息進行特定分析時,這非常有用。

接下來,我們嘗試提取購買金額超過100 美元的用戶。

$ awk -F, '$7 > 100 {print $0}' users_cleaned.csv > users_high_value.csv

awk命令根據條件過濾行,創建符合特定條件的數據子集。

數據排序

我們跳過標題行,按姓氏對記錄進行排序。

$ (head -n 1 users_cleaned.csv && tail -n +2 users_cleaned.csv | sort -t, -k3) > users_sorted_by_name.csv

命令:

  • 使用head -n 1 保留標題行
  • 使用tail -n +2 獲取除標題之外的所有行
  • 使用sort -t, -k3 按第三個字段(last_name)對數據進行排序
  • 將標題和排序后的數據合并到一個新文件中

#按購買金額降序排序

(head -n 1 users_cleaned.csv && tail -n +2 users_cleaned.csv | sort -t, -k7 -n -r) > users_sorted_by_purchase.csv

命令按購買金額降序排序數據:

  • -t,指定逗號為分隔符
  • -k7 按第七個字段(purchase_amount)排序
  • -n 確保按數字排序(非字母順序)
  • -r 按反向(降序)排序

聚合和分析數據

Bash也可用于基本數據分析。不妨計算一下總購買金額

$ awk -F, 'NR>1 {sum += $7} END {print "Total purchases: $" sum}' users_cleaned.csv

awk 命令:

  • 跳過NR>1 的標題行
  • 將第7個字段purchase_amount中的所有值相加
  • 在末尾打印輸出購買金額。
Total purchases: $1282.49

現在不妨計算一下平均購買金額:

$ awk -F, 'NR>1 {sum += $7; count++} END {print "Average purchase: $" sum/count}' users_cleaned.csv

命令以下方式計算平均值:

  • 將所有購買金額相加
  • 計算記錄數
  • 總購買金額除以末尾的計數
Average purchase: $128.249

接下來,不妨按注冊月份統計用戶數量:

$ awk -F, 'NR>1 {
 split($5, date, "-");
 months[date[2]]++;
} 
END {
 for (month in months) {
 print "Month " month ": " months[month] " users"
 }
}' users_cleaned.csv

這個更復雜的awk 命令可以

  • 從注冊日期中提取月份
  • 使用關聯數組months統計出現次數
  • 按月份打印輸出用戶摘要
Month 01: 10 users

創建用于清理數據的 Bash 腳本

創建可重用的Bash腳本以清理數據通常很方便。具體操作方法如下:

  • 將數據清理命令保存到文件中,比如clean_user_data.sh(該腳本包含幾個額外的數據清理步驟)
  • 使用chmod +x clean_user_data.sh 使其可執行
  • 使用./clean_user_data.sh 運行該腳本

clean_user_data.sh 腳本:

  • 分別處理每個清理步驟,但將所有更改寫入同一個輸出文件
  • 包含進度消息以跟蹤執行情況
  • 清理后執行驗證檢查
  • 輕松修改以添加更多清理步驟或更改現有清理步驟
  • 如果存在臨時文件,末尾刪除臨時文件

逐個運行命令和運行腳本都可以實現相同的目標,但腳本便于清楚地了解清理過程,并簡化故障排除。

結語

但愿本教程能為使用Bash清理數據提供了堅實的基礎。

關鍵要點:

  • Bash非常適合快速高效地清理中小型數據集。
  • grep、awk、sed 和sort 等命令的組合提供了一套靈活的工具包。
  • 可以使用Bash 腳本清理數據以及清理過程記入文檔

請記住,雖然Bash功能強大,但它只是數據工具箱中的一種工具。對于非常大的數據集或更復雜的轉換,可能需要考慮使用Python、R或專用的ETL工具。然而對于許多日常數據清理任務而言,Bash 的效率和效果都出奇地好!

祝清理愉快!

原文標題:Data Cleaning with Bash: A Handbook for Developers作者:Bala Priya C

責任編輯:姜華 來源: 51CTO
相關推薦

2015-09-22 15:24:27

SDNDocker

2015-09-22 16:11:41

SDNDocker

2009-10-28 13:54:38

linux安裝顯卡驅動

2009-10-28 12:05:32

linux監控技術

2011-04-13 09:40:27

2009-10-28 09:48:31

VB.NET XmlR

2009-11-05 11:12:21

WCF自宿主

2009-10-28 18:35:10

Linux基礎用戶

2009-10-27 13:14:35

VB.NET窗體應用

2009-11-09 11:31:47

WCF消息隊列

2009-11-03 16:57:34

ADO.NET FAQ

2009-11-03 16:17:39

ADO.NET Ent

2009-10-28 14:51:33

VB.NET設計制作窗

2009-10-27 15:42:04

VB.NET文件對象

2009-11-12 14:18:19

ADO.NET分頁

2009-11-16 14:52:16

PHP數組

2009-11-18 18:18:10

PHP Web查詢數據

2016-01-14 14:17:51

密碼管理密碼分析安全工具
點贊
收藏

51CTO技術棧公眾號

麻豆精品视频| x99av成人免费| 国产主播自拍av| 香蕉视频国产在线| 日本成人中文字幕| 综合欧美国产视频二区| 美女日批在线观看| а√天堂8资源中文在线| 久久网站热最新地址| 国产精品看片资源| 国产盗摄一区二区三区在线| 欧美久久香蕉| 欧美区一区二区三区| 99er在线视频| 99中文字幕一区| 成人白浆超碰人人人人| 国产精品老女人精品视频| 久久久无码精品亚洲国产| 欧美精品乱码| 亚洲精品国产成人| 777一区二区| 自拍在线观看| 亚洲精品大片www| 日韩高清国产精品| 日日夜夜精品免费| 精品一区二区三区在线观看 | 亚洲在线免费视频| 波多野结衣 久久| 海角社区69精品视频| 国产一区二区免费| 99re久久精品国产| 亚洲国产中文在线二区三区免| 欧美在线一二三| 久草热视频在线观看| 国产在线1区| 中文字幕第一区第二区| 精品久久久三级| 国产99久久九九精品无码免费| 日韩不卡免费视频| 97久久久久久| 精品无码免费视频| 中文字幕免费精品| 日韩中文在线中文网三级| 四虎永久免费影院| 国产乱论精品| 精品日韩一区二区| 国产男女无遮挡猛进猛出| 久久日本片精品aaaaa国产| 日本高清无吗v一区| 日韩人妻精品无码一区二区三区| 色操视频在线| 悠悠色在线精品| 最近免费观看高清韩国日本大全| 日本不卡在线| 国产精品日日摸夜夜摸av| 欧美日韩国产免费一区二区三区| 天天综合网在线观看| 国产成人自拍网| 亚洲xxx视频| 国产丰满美女做爰| 国产在线播精品第三| 成人午夜在线影院| 国产日韩在线观看一区| 激情欧美一区二区| 91视频在线免费观看| av免费观看在线| 国产成人精品免费在线| 高清视频在线观看一区| 成人精品在线播放| proumb性欧美在线观看| 久久久亚洲综合网站| 网站黄在线观看| 久久尤物电影视频在线观看| 日本婷婷久久久久久久久一区二区 | 性感少妇一区| 国产mv久久久| 一级片aaaa| 国产老妇另类xxxxx| 99久久99久久| 水莓100在线视频| 国产欧美综合在线观看第十页| 日本免费高清一区| 麻豆系列在线观看| 亚洲专区一二三| 日本人体一区二区| 粉嫩一区二区三区| 欧美美女bb生活片| 亚洲一级Av无码毛片久久精品| 精品少妇一区| 一区二区三区天堂av| 亚洲AV成人无码精电影在线| 欧美成人tv| 91国产美女在线观看| 久久久精品视频网站| 麻豆91精品91久久久的内涵| 97人人香蕉| 看电影就来5566av视频在线播放| 国产精品福利一区二区三区| 国产午夜精品视频一区二区三区| 日韩欧美精品一区二区三区| 欧美亚洲愉拍一区二区| 丰满少妇中文字幕| 久久99高清| 久久精品亚洲94久久精品| 国产一级久久久| 日韩福利电影在线| 成人h视频在线观看| 激情综合闲人网| 一区二区三区日韩| 成人在线免费播放视频| 精品国产亚洲一区二区三区在线 | 综合操久久久| 怡红院男人天堂| 国产成人在线观看| 日韩欧美视频第二区| 手机在线免费av| 欧美在线|欧美| 国产chinese中国hdxxxx| 成人一区不卡| **欧美日韩vr在线| 国产精品伦理一区| 久久久久国产免费免费| 欧美日韩一区二区三区在线| 蜜桃传媒视频麻豆第一区免费观看| 在线观看h片| 天天综合色天天综合色h| www.超碰97.com| 亚洲电影男人天堂| 久久久久久久久久国产| 国产毛片毛片毛片毛片| 欧美激情综合五月色丁香小说| 精品少妇人妻av免费久久洗澡| 91麻豆精品一二三区在线| 亚洲美女在线视频| 国产在线精品观看| 国产精品亚洲成人| 国产系列第一页| 成人黄色毛片| 国产性色av一区二区| 国产高潮久久久| 不卡一区二区三区四区| 成人在线免费高清视频| 成人51免费| 久久久精品免费| 这里只有精品9| 国产欧美日韩中文久久| 免费在线观看毛片网站| 亚州综合一区| 国产+人+亚洲| 手机在线精品视频| 亚洲电影第三页| 亚洲成年人在线观看| 1024精品久久久久久久久| 国产精品视频永久免费播放| 国产福利在线观看| 欧美在线一二三| 美女网站视频色| 男女视频一区二区| 亚洲欧洲一二三| 日韩久久一区| 久久香蕉国产线看观看av| 一级视频在线播放| 亚洲欧美日韩中文播放| 日本一二三四区视频| 91精品99| 精品国产乱码久久久久久88av| av今日在线| 亚洲精品一区av在线播放| 中文字幕一区在线播放| 国产日韩欧美a| 国产精品v日韩精品v在线观看| 999国产精品| 91在线观看免费观看 | 亚洲一区在线观| 亚洲同性gay激情无套| 97人人模人人爽人人澡| 狠狠入ady亚洲精品经典电影| 国产欧美亚洲日本| 欧美电影免费观看| 色av中文字幕一区| 精品国产乱码一区二区三 | 国产精品一区二区av白丝下载| 亚洲视频一区在线观看| 久久久久久久久久影视| 亚洲在线一区| 亚洲一区三区电影在线观看| 小毛片在线观看| 国产va免费精品观看精品视频 | 中日韩精品视频在线观看| 91美女视频网站| 天天色综合社区| 欧美日韩亚洲国产精品| 精品国产一区二区三区麻豆小说| 成人免费福利| 美女少妇精品视频| 日韩一区av| 欧美高清一级片在线| 国产在线一二区| 国产女人aaa级久久久级 | 久久国产精品久久久| 亚洲女人18毛片水真多| 色噜噜狠狠成人网p站| 日韩欧美国产成人精品免费| 91在线观看视频| 国产原创精品在线| 亚洲精品国产日韩| 最新精品视频| 免费看av成人| www.成人av.com| 成人日韩av| 8090成年在线看片午夜| 久久99精品久久| 亚洲欧美国产va在线影院| www.国产麻豆| 欧美日韩中文字幕一区| 永久免费看片在线播放| 亚洲男人的天堂一区二区| 色欲av无码一区二区三区| 高清免费成人av| 中文字幕 日韩 欧美| 国产精品日韩久久久| 草草草视频在线观看| 日本精品三区| 欧美日韩在线一二三| xxxx日韩| 91精品天堂| 亚洲精品伦理| 国产精品第3页| 末成年女av片一区二区下载| 欧美裸体xxxx极品少妇| 亚洲精品传媒| 国产亚洲美女精品久久久| 人妻妺妺窝人体色www聚色窝| 6080yy午夜一二三区久久| 草莓视频18免费观看| 欧美特黄级在线| 日韩美女黄色片| 亚洲国产综合在线| 波多野结衣不卡视频| 国产精品久久久久婷婷二区次| 国产真人做爰视频免费| www激情久久| 欧美深性狂猛ⅹxxx深喉| 成人免费毛片a| 亚洲精品久久一区二区三区777| 国产一区二三区好的| 伊人色在线视频| 狠狠色丁香久久婷婷综| 国产日韩欧美久久| 久久99久久99| 国内自拍第二页| 精品在线观看免费| 中文字幕在线视频一区二区三区| 久久99精品一区二区三区三区| 五月婷婷之婷婷| 国产一区二区调教| 在线观看日本www| 国产精品99久久久久久久女警| 黄色片子免费看| 国产不卡在线一区| 一边摸一边做爽的视频17国产| 成人一区在线看| 艳妇乳肉豪妇荡乳xxx| 97久久超碰精品国产| 日韩人妻一区二区三区| 中文一区在线播放| 国产又粗又硬又长又爽| 亚洲精品乱码久久久久久日本蜜臀| 九九热国产精品视频| 午夜视频在线观看一区二区| 一级黄色大片视频| 欧美三级蜜桃2在线观看| 91精品国产乱码久久| 日韩欧美一区在线| 囯产精品一品二区三区| 日韩国产欧美精品在线| 成人在线免费电影| 久久夜色撩人精品| av资源在线看片| 国产成人免费av电影| 久久精品国产精品亚洲毛片| 91精品国产99久久久久久红楼| 精品午夜电影| 丝袜足脚交91精品| 欧美福利影院| 久久综合色视频| 老司机精品久久| 国产高清999| 久久亚洲免费视频| 永久免费看片直接| 亚洲国产精品久久久男人的天堂| 中文字幕国产在线观看| 7777精品伊人久久久大香线蕉完整版| 黄色一级大片在线免费看国产| 亚洲人成网7777777国产| 大片免费在线观看| 欧美孕妇性xx| 免费一区二区三区在线视频| 欧美成人第一区| 小说区亚洲自拍另类图片专区| 成人午夜免费在线| 蜜臀av性久久久久av蜜臀妖精| jjzz黄色片| 国产精品福利一区二区三区| 日韩av综合在线| 9191久久久久久久久久久| 神马久久久久久久久久| 久久精品91久久久久久再现| 绿色成人影院| 91在线看网站| 日韩视频在线观看| 成人免费aaa| 国产激情一区二区三区四区| 性猛交娇小69hd| 激情亚洲一区二区三区四区| 国产视频在线观看视频| 亚洲天堂成人在线| 大桥未久在线视频| 亚洲一区制服诱惑| 日韩毛片视频| av免费网站观看| 99国产精品国产精品毛片| 翔田千里88av中文字幕| 欧美在线视频全部完| 青青草在线免费视频| 久久久免费电影| 日韩精品视频在线看| 一区二区三区四区五区视频 | 色婷婷.com| 欧美极品xxx| 国产区一区二区三| 亚洲国产高潮在线观看| 一二三四区在线观看| 国产自产女人91一区在线观看| 欧美日韩爱爱| 少妇高潮喷水久久久久久久久久| 不卡的av在线| 国产亚洲欧美精品久久久www| 欧美一区三区二区| 免费高清完整在线观看| 国产日韩精品在线观看| 欧美色图在线播放| 福利在线一区二区三区| 久久久精品一品道一区| www.国产一区二区| 国产丝袜一区二区三区免费视频| 久草在线资源站手机版| 国产日韩欧美综合精品| 最新日韩在线| 亚洲激情 欧美| 岛国av一区二区三区| 东京干手机福利视频| 久久久久久亚洲精品不卡| www.亚洲一二| 玩弄中年熟妇正在播放| 97久久人人超碰| 国产熟妇一区二区三区四区| 亚洲色图激情小说| 久久久人成影片一区二区三区在哪下载| 欧美一区亚洲二区| 蜜臀久久99精品久久久久久9| 五月天免费网站| 日韩小视频在线观看专区| a级片国产精品自在拍在线播放| av成人观看| 99热在线精品观看| 日韩精品无码一区二区三区久久久 | 国产一区二区成人| 福利一区二区免费视频| 欧美aaa在线观看| 成人丝袜视频网| 五月天激情四射| 日韩在线视频观看| 日韩一区二区三区高清在线观看| 91成人综合网| 久久蜜桃一区二区| 亚洲天堂网在线视频| 超在线视频97| 色婷婷免费视频| ㊣最新国产の精品bt伙计久久| 99热这里只有精| 2019最新中文字幕| 国产欧美一区| 搡的我好爽在线观看免费视频| 亚洲成人精品影院| 国产人成在线观看| 91在线中文字幕| 亚洲主播在线| 一区二区三区影视| 亚洲精品美女久久久| jvid一区二区三区| 久久这里只有精品18| 久久精品亚洲麻豆av一区二区| 国产裸体无遮挡| 日韩美女免费视频| 一区二区电影在线观看| 变态另类丨国产精品| 91精选在线观看| 免费亚洲电影| 国产爆乳无码一区二区麻豆|