日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 获取命令行返回的数据_Linux | 活用CLI命令行进行数据处理与探索

發布時間:2025/3/17 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 获取命令行返回的数据_Linux | 活用CLI命令行进行数据处理与探索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

COMMAND LINE INTERFACE

CLI即COMMAND LINE INTERFACE命令行模式,是在圖形界面得到普及之前使用最為廣泛的用戶界面,也就是咱們平時看到的黑乎乎背景與綠油油文字系統界面。

我們常常習慣于使用圖形界面(excel或juypter)對數據進行復雜操作和分析,但是面對一些文本處理可以通過一些命令更為方便快捷,本文旨在一些數據處理場景進行基礎介紹,命令的具體用法和參數還請讀者自行谷歌。

獲取數據

Linux中 curl是一個利用URL規則在命令行下工作的文件傳輸工具,可以說是一款很強大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url為下載工具。

wget工具體積小但功能完善,它支持斷點下載功能,同時支持FTP和HTTP下載方式,支持代理服務器和設置起來方便簡單。

# 通過鏈接下載數據 wget https://github.com/amanthedorkknight/fifa18-all-player-statistics/raw/master/2019/data.csv curl -s http://www.gutenberg.org/files/76/76-0.txt

轉化數據

in2csv是csvkit套件的一個重要工具,其作用是可以將各種格式化數據(如excel)轉化為csv文件。由于unix系統下無法直接查看excel文件,所以需要將xlsx提前轉化為csv文件即逗號分隔文件。

# 將xlsx文件轉化為csv文件,>為重定向符號,可將前一個命令輸出保存為文件。 in2csv data/imdb-250.xlsx > data/imdb-250.csv

查看數據

cat是最常用的文本查看命令,但是只能全量查看,面對較大的數據需要配合head或tail查看前n行或后n行文本。

# 只查看前1行即喵一眼列名 head -n $ head -1 data.csv ,ID,Name,Age,Photo,Nationality,Flag,Overall,Potential,Club,Club Logo,Value,Wage,Special,Preferred Foot,International Reputation,Weak Foot,Skill Moves,Work Rate,Body Type,Real Face,Position,Jersey Number,Joined,Loaned From,Contract Valid Until,Height,Weight,LS,ST,RS,LW,LF,CF,RF,RW,LAM,CAM,RAM,LM,LCM,CM,RCM,RM,LWB,LDM,CDM,RDM,RWB,LB,LCB,CB,RCB,RB,Crossing,Finishing,HeadingAccuracy,ShortPassing,Volleys,Dribbling,Curve,FKAccuracy,LongPassing,BallControl,Acceleration,SprintSpeed,Agility,Reactions,Balance,ShotPower,Jumping,Stamina,Strength,LongShots,Aggression,Interceptions,Positioning,Vision,Penalties,Composure,Marking,StandingTackle,SlidingTackle,GKDiving,GKHandling,GKKicking,GKPositioning,GKReflexes,Release Clause# 只查看后5行 tail -n $ tail -5 data.csv 18202,238813,J. Lundstram,19,https://cdn.sofifa.org/players/4/19/238813.png,England,https://cdn.sofifa.org/flags/14.png,47,65,Crewe Alexandra,https://cdn.sofifa.org/teams/2/light/121.png,€60K,€1K,1307,Right,1,2,2,Medium/ Medium,Lean,No,CM,22,"May 3, 2017",,2019,5'9,134lbs,42+2,42+2,42+2,44+2,44+2,44+2,44+2,44+2,45+2,45+2,45+2,44+2,45+2,45+2,45+2,44+2,44+2,45+2,45+2,45+2,44+2,45+2,45+2,45+2,45+2,45+2,34,38,40,49,25,42,30,34,45,43,54,57,60,49,76,43,55,40,47,38,46,46,39,52,43,45,40,48,47,10,13,7,8,9,€143K 18203,243165,N. Christoffersson,19,https://cdn.sofifa.org/players/4/19/243165.png,Sweden,https://cdn.sofifa.org/flags/46.png,47,63,Trelleborgs FF,https://cdn.sofifa.org/teams/2/light/703.png,€60K,€1K,1098,Right,1,2,2,Medium/ Medium,Normal,No,ST,21,"Mar 19, 2018",,2020,6'3,170lbs,45+2,45+2,45+2,39+2,42+2,42+2,42+2,39+2,40+2,40+2,40+2,38+2,35+2,35+2,35+2,38+2,30+2,31+2,31+2,31+2,30+2,29+2,32+2,32+2,32+2,29+2,23,52,52,43,36,39,32,20,25,40,41,39,38,40,52,41,47,43,67,42,47,16,46,33,43,42,22,15,19,10,9,9,5,12,€113K 18204,241638,B. Worman,16,https://cdn.sofifa.org/players/4/19/241638.png,England,https://cdn.sofifa.org/flags/14.png,47,67,Cambridge United,https://cdn.sofifa.org/teams/2/light/1944.png,€60K,€1K,1189,Right,1,3,2,Medium/ Medium,Normal,No,ST,33,"Jul 1, 2017",,2021,5'8,148lbs,45+2,45+2,45+2,45+2,46+2,46+2,46+2,45+2,44+2,44+2,44+2,44+2,38+2,38+2,38+2,44+2,34+2,30+2,30+2,30+2,34+2,33+2,28+2,28+2,28+2,33+2,25,40,46,38,38,45,38,27,28,44,70,69,50,47,58,45,60,55,32,45,32,15,48,43,55,41,32,13,11,6,5,10,6,13,€165K 18205,246268,D. Walker-Rice,17,https://cdn.sofifa.org/players/4/19/246268.png,England,https://cdn.sofifa.org/flags/14.png,47,66,Tranmere Rovers,https://cdn.sofifa.org/teams/2/light/15048.png,€60K,€1K,1228,Right,1,3,2,Medium/ Medium,Lean,No,RW,34,"Apr 24, 2018",,2019,5'10,154lbs,47+2,47+2,47+2,47+2,46+2,46+2,46+2,47+2,45+2,45+2,45+2,46+2,39+2,39+2,39+2,46+2,36+2,32+2,32+2,32+2,36+2,35+2,31+2,31+2,31+2,35+2,44,50,39,42,40,51,34,32,32,52,61,60,52,21,71,64,42,40,48,34,33,22,44,47,50,46,20,25,27,14,6,14,8,9,€143K 18206,246269,G. Nugent,16,https://cdn.sofifa.org/players/4/19/246269.png,England,https://cdn.sofifa.org/flags/14.png,46,66,Tranmere Rovers,https://cdn.sofifa.org/teams/2/light/15048.png,€60K,€1K,1321,Right,1,3,2,Medium/ Medium,Lean,No,CM,33,"Oct 30, 2018",,2019,5'10,176lbs,43+2,43+2,43+2,45+2,44+2,44+2,44+2,45+2,45+2,45+2,45+2,46+2,45+2,45+2,45+2,46+2,46+2,46+2,46+2,46+2,46+2,46+2,47+2,47+2,47+2,46+2,41,34,46,48,30,43,40,34,44,51,57,55,55,51,63,43,62,47,60,32,56,42,34,49,33,43,40,43,50,10,15,9

more與less對文件進行動態加載并進行滾屏查看,在查看超大文件時又快又靈活,墻裂推薦。

快捷鍵:ctrl+F向后一屏,ctrl+B向前一屏,j/k前/后一行,g文本首航,G文本末行,/查找。

# 動態查看文本,顯示行號與文本百分比 $ less -m -N data.csv1 ,ID,Name,Age,Photo,Nationality,Flag,Overall,Potential,Club,Club Logo,Value,Wage,Special,Preferred Foot,International Reputation,Weak Foot,Skill Moves,Work Rate,Body2 0,158023,L. Messi,31,https://cdn.sofifa.org/players/4/19/158023.png,Argentina,https://cdn.sofifa.org/flags/52.png,94,94,FC Barcelona,https://cdn.sofifa.org/teams/2/l3 1,20801,Cristiano Ronaldo,33,https://cdn.sofifa.org/players/4/19/20801.png,Portugal,https://cdn.sofifa.org/flags/38.png,94,94,Juventus,https://c 0%

操作文本

linux有文本處理三劍客,grep文本過濾小能手,sed增刪查改小幫手,awk格式化處理王者。

  • grep 文本過濾小能手,配合正則表達式,來過濾出一些符合我們條件的行。
# 過濾帶坤的行 ? ~ cat data.csv | grep "坤" 蔡徐坤,21,籃球,校隊球員 謝廣坤,64,收貨,象牙山紀律委員 楊坤,47,開演唱會,歌手 陳坤,43,尋寶,摸金校尉
  • sed增刪查改小幫手,一行一行處理文本。
# 刪除,sed 'm,nd' 刪除m行到n行的內容 ? ~ cat -n data.csv | sed '4,5d'1 姓名,年齡,愛好,職業2 蔡徐坤,21,籃球,校隊球員3 謝廣坤,64,收貨,象牙山紀律委員# 增加,sed 'm,na' 在m到n行后增加內容 ? ~ cat -n data.csv | sed '1d ,列名'1 姓名,年齡,愛好,職業,列名2 蔡徐坤,21,籃球,校隊球員3 謝廣坤,64,收貨,象牙山紀律委員4 楊坤,47,開演唱會,歌手5 陳坤,43,尋寶,摸金校尉# 查改,sed 's/before/after/g' 將before替換為after ? ~ sed 's/坤/坤坤/g' data1.csv1 姓名,年齡,愛好,職業2 蔡徐坤坤,21,籃球,校隊球員3 謝廣坤坤,64,收貨,象牙山紀律委員4 楊坤坤,47,開演唱會,歌手5 陳坤坤,43,尋寶,摸金校尉
  • awk格式化處理王者

awk [options] 'pattern{action}'

awk可以根據pattern對想要處理的行進行匹配,匹配之后再對其進行文本操作,適用以行為單位對文本進行格式化處理。

# -F設置,為分隔符, $n代表分隔后的第n個字段 # 每行以,號分隔為列,打印第一列和第三列 ? ~ awk -F ',' '{print $1,$3}' data1.csv1 姓名 愛好2 蔡徐坤 籃球3 謝廣坤 收貨4 楊坤 開演唱會5 陳坤 尋寶# BEGIN和END用于標記位置 # 給文本加上標題,結尾加上時間 ? ~ awk -F ',' 'BEGIN{print "t標題:人物信息"} {print $1,$3} END {print "ttt---2019年04月14日"}' data1.csv標題:人物信息1 姓名 愛好2 蔡徐坤 籃球3 謝廣坤 收貨4 楊坤 開演唱會5 陳坤 尋寶---2019年04月14日# 加入label為變量,if else用于條件判斷 # 加入新列, 年齡大于40的標記為老戲骨,其余為小鮮肉 ? ~ awk -F ',' '{if($2>40){label="老戲骨"}else{label="小鮮肉"};print $0,label}' data1.csv1 姓名,年齡,愛好,職業 老戲骨2 蔡徐坤,21,籃球,校隊球員 小鮮肉3 謝廣坤,64,收貨,象牙山紀律委員 老戲骨4 楊坤,47,開演唱會,歌手 老戲骨
  • tr替換,例如替換逗號分隔符為制表符。

tr ',' 't' data.csv

  • cut指定字段范圍顯示,例如顯示前3列文本。

cut -c-3 data.csv

CSV CSV CSV !!!

CSV是咱們數據民工每天面對的難題,如何應用命令行靈活處理CSV呢?

csvlook可用于查看csv文件并格式化,--max-rows設置行數,--max-columns設置列數 。

$ csvlook wine-red.csv --max-rows 5 --max-columns 5 | fixed acidity | volatile acidity | citric acid | residual sugar | chlorides | ... | | ------------- | ---------------- | ----------- | -------------- | --------- | --- | | 7.4 | 0.70 | 0.00 | 1.9 | 0.076 | ... | | 7.8 | 0.88 | 0.00 | 2.6 | 0.098 | ... | | 7.8 | 0.76 | 0.04 | 2.3 | 0.092 | ... | | 11.2 | 0.28 | 0.56 | 1.9 | 0.075 | ... | | 7.4 | 0.70 | 0.00 | 1.9 | 0.076 | ... | | ... | ... | ... | ... | ... | ... |

表格通常由表頭與數據組成,橫向分隔為列,縱向分隔為行。而與之對應的也有三大處理工具,body(Janssens2014a),header(Janssens2014c),andcols(Janssens2014b)。

# 顯示列名 $ cat wine-red.csv | header "fixed acidity";"volatile acidity";"citric acid";"residual sugar";"chlorides";"free sulfur dioxide";"total sulfur dioxide";"density";"pH";"sulphates";"alcohol";"quality"# 除了列名將所有小寫字母替換為大寫字母 < tips.csv body "tr '[a-z]' '[A-Z]'" | head -n 5 | csvlook | bill | tip | sex | smoker | day | time | size | | ----- | ---- | ------ | ------ | ---------- | ------ | ---- | | 16.99 | 1.01 | FEMALE | False | 0001-01-07 | DINNER | 2 | | 10.34 | 1.66 | MALE | False | 0001-01-07 | DINNER | 3 | | 21.01 | 3.50 | MALE | False | 0001-01-07 | DINNER | 3 | | 23.68 | 3.31 | MALE | False | 0001-01-07 | DINNER | 2 |
  • csvstat統計列最大,最小,均值,unique等統計值。
  • --max (maximum)
  • --min (minimum)
  • --sum (sum)
  • --mean (mean)
  • --median (median)
  • --stdev (standard deviation)
  • --nulls (whether column contains nulls)
  • --unique (unique values)
  • --freq (frequent values)
  • --len (max value length)
  • $ csvstat tips.csv1. "bill"Type of data: NumberContains null values: FalseUnique values: 229Smallest value: 3.07Largest value: 50.81Sum: 4827.77Mean: 19.785943Median: 17.795StDev: 8.902412Most common values: 13.42 (3x)10.34 (2x)21.01 (2x)10.33 (2x)17.92 (2x)2. "tip"Type of data: NumberContains null values: FalseUnique values: 123Smallest value: 1Largest value: 10Sum: 731.58Mean: 2.998279Median: 2.9StDev: 1.383638Most common values: 2 (33x)3 (23x)4 (12x)5 (10x)2.5 (10x).....Row count: 244

    最后給大家替工一個docker image,免去安裝各種依賴環境的繁瑣。

    $ docker pull datascienceworkshops/data-science-at-the-command-line $ docker run --rm -it datascienceworkshops/data-science-at-the-command-line

    相關資料

    Data Science at the Command Line
    Csvkit Document TutorialLinux三劍客之awk命令awk從入門到放棄
    What is the difference between sed and awk?

    作者才疏學淺,文章中可能出現紕漏,忘讀者多多指正交流。

    各位點一波贊吧~~

    總結

    以上是生活随笔為你收集整理的linux 获取命令行返回的数据_Linux | 活用CLI命令行进行数据处理与探索的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 美女视频黄是免费 | 欧美高清x| 玉女心经 在线 | 日本免费在线观看视频 | 亚洲91av| 国产喷水福利在线视频 | 99国产精品白浆在线观看免费 | 99爱精品 | 国产稀缺真实呦乱在线 | 丝袜国产视频 | 91视频a | 色妻影院| 毛片传媒 | 天堂欧美 | 少妇2做爰bd在线意大利堕落 | 视频一区二区中文字幕 | 欧美在线免费视频 | 久久影院国产 | 国产伦精品一区二区三区视频我 | 色噜噜狠狠一区二区三区 | 亚洲の无码国产の无码步美 | 来吧亚洲综合网 | 欧美日韩123区 | 爱爱短视频 | av免 | 尤物视频在线观看 | www.99爱| 国产视频在 | 精品久久影视 | 中文字幕高清视频 | 久热综合 | 国产黄色片免费 | 国产色一区 | 黄色小视频在线观看免费 | 成人网在线看 | 亚洲精品无码久久久久久久 | 麻豆精品 | 国产福利不卡 | 亚洲一区二区久久久 | av青青草 | 中文有码在线观看 | 九九色网站 | 99婷婷 | 黑人高潮一区二区三区在线看 | 成人在线视屏 | 国产一区二区三区四区在线观看 | 欧美激情小视频 | 在线视频你懂得 | avtt在线观看 | 久久精品视 | 国产成人精品a视频一区 | 无码视频在线观看 | 久久久久久久国产精品视频 | 日本黄色免费网址 | 日韩美女一级片 | 亚洲一区二区三区日韩 | 国产精品一区二区三区免费视频 | 国产一区二区a | 国产精品69毛片高清亚洲 | 精品福利视频导航 | 欧美激情视频二区 | 成人精品免费视频 | 五十路在线| 亚洲精品在线91 | 午夜秋霞| 精品视频免费在线观看 | 性欧美精品 | 97在线免费视频 | 一级二级在线观看 | 一卡二卡在线视频 | 最新超碰| 日韩黄色短片 | 成人av网址在线 | 中文字幕1 | 秋霞成人午夜鲁丝一区二区三区 | 我和公激情中文字幕 | 国产欧美日韩视频 | 成人av视屏 | 国产一级二级三级在线观看 | 亚洲av无码一区二区三区dv | 成人av综合网 | 七月婷婷综合 | 亚洲一区二区三区免费看 | 爱爱三级视频 | 欧美黑人巨大xxx极品 | 国产做受91 | 欧美日韩亚洲高清 | 欧美成人日韩 | 91久| 亚洲精品乱码久久久久久蜜桃图片 | 久久九九视频 | 黄色av观看| 98精品国产| www.爱爱| 亚洲午夜精品一区二区三区他趣 | av一级二级 | 日韩av一区二区三区四区 | 波多野结衣欲乱上班族 | 中文欧美日韩 |