數據清洗 -大規模數據清洗的利器 文字解析、文字替換等, 速度遠快於replace
https://flashtext.readthedocs.io/en/latest/node
split 文件切割軟件python
# 按照大小切割文件 split -b 10M a.csv a.csv. 切割後獲得 a.csv.aa a.csv.ab # 字符串分割函數split str.split(str="", num=string.count(str)) - str :分隔符,默認爲空格。 - num :分割次數。
# 統計當前文件夾下文件的個數: ls -l |grep "^-"|wc -l # 統計當前文件夾下目錄的個數: ls -l |grep "^d"|wc -l # 統計當前文件夾下文件的個數,包括子文件夾裏的 : ls -lR|grep "^-"|wc -l # 統計文件夾下目錄的個數,包括子文件夾裏的: ls -lR|grep "^d"|wc -l # 統計輸出信息的行數 wc -l
sed 文件替換mysql
# 在文件的首行插入指定內容: sed -i "1i#! /bin/sh -" a 執行後,在a文件的第一行插入#! /bin/sh - # 在文件的指定行(n)插入指定內容: sed -i "niecho "haha"" a 執行後,在a文件的第n行插入echo "haha" # 在文件的末尾行插入指定內容: echo 「haha」 >> a 執行後,在a文件的末尾行插入haha # 刪除正文首行的#號註釋 sed 's/\#//g' /etc/crontab # 替換文件中字符串 sed -i "s/str1/str2/g" filname # 刪除a.txt中含"abc"的行,但不改變a.txt文件自己,操做以後的結果在終端顯示 sed -e '/abc/d' a.txt # 刪除a.txt中含"abc"的行,將操做以後的結果保存到a.log sed -e '/abc/d' a.txt > a.log # 刪除含字符串"abc"或「efg"的行,將結果保存到a.log sed '/abc/d;/efg/d' a.txt > a.log # 查找多個空格 /\s\+ # 刪除第1000行輸出 a不變 b刪除一條數據 sed -e '/1000/d' a> b # 獲取第二行到末尾 sed -n '2,$p' filename > new_filename # 刪除Linux文件重複行 sort -n filename | uniq ### 刪除空行 刪除空格/回車組成的空行 sed -i '/^ *$/d' file # 將目錄下全部文件 替換字符串 sed -i "s/d3b387c031dd/1000db7324ff/g" `grep "d3b387c031dd" -rl /u01 `
資源連接:linux
rpm相關命令git
# 查詢包版本 rpm -qa | grep vim # 安裝包 rpm -ivh xxxxx.rpm # 卸載 rpm -e --nodeps vim-minimal-7.4.629-5.el6_8.1.x86_64
yum相關命令github
# 安裝 yum install -y vim # 卸載 yum remove vim # 重置緩存 yum clean all yum makecache # yum配置目錄 /etc/yum.repos.d/xx.repo # 只下載安裝包 方法1 yum install yum-plugin-downloadonly -y # centos6以前須要此命令 yum install mysql-server --downloadonly --downloaddir=/data/packages # 只下載安裝包 方法2 yum install yum-utils -y # 專門的下載工具 yum downloader lsof --resolve --destdir=/data/mydepot/ # 默認不會下載對應的依賴文件,須要添加 resolve參數 # 查看可用的rpm包 yum list available 'graphviz*' # yum 下載 rpm 包 yum install --downloaddir=/tmp/whj/ --downloadonly glibc-devel.i686
pip相關經常使用命令web
# 搜索包 pip search xlrd # 查看包版本 pip list # 生成環境依賴文件 pip freeze > requirement.txt # 下載安裝包 方式1 pip --downloadonly --downloaddir=/tmp/ xlrd # 下載安裝包 方式2 - 會下載對應依賴 pip download xx # 查看可更新包: pip list --outdated --format=columns # 批量下載並更新: pip install pip-review pip-review --local --interactive # 尋找pip中是否存在此安裝包 pip search file # 查看安裝包時安裝了哪些文件: pip show --files SomePackage # 查看哪些包有更新: pip show --files SomePackage # 更新一個軟件: pip install --upgrade SomePackage # 安裝 pip install xlrd # 卸載 pip uninstall xlrd
配置國內pip源正則表達式
# 配置 國內pip源 ~/.pip/pip.conf [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com
# 壓縮經常使用命令 tar -zcf xxx.tar.gz xxx_dir_xxx -v 顯示詳細的處理文件 # 解壓經常使用命令 tar -zxvf xxx.tar.gz # 解壓 xz 壓縮包 tar xvJf node-v6.10.1-linux-x64.tar.xz
zip -P qwe123 a.zip -r sssssql
# zip 參數說明 -P 加密 -r 壓縮目錄 # 壓縮並指定目錄 zip -r /home/kms/kms.zip /home/kms/server/kms # 解壓並指定目錄 unzip /home/kms/kms.zip -d /home/kms/server/kms
# ~/.bash_profile alias pip=" pip --trusted-host mirrors.aliyun.com "
wget參數解釋、用法: http://www.javashuo.com/article/p-yaqdpzzz-gu.htmlshell
# 作站點鏡像 wget xxxx -r -np 下載整個目錄,不包含上層目錄
grep -r 遞歸查詢子目錄
grep -i 查詢不區分大小寫
grep -n 顯示查詢出來的文件行號
grep -w 精準匹配
grep -l 只顯示(包含文件內容的)文件名
grep -rn xxx . 「.」 只查詢本目錄以及其下的目錄—公司電腦只有這樣才能查詢,具體緣由,多是設置了相關權限等
忽略大小寫 -iname
find / -iname ‘csv’
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-XcjoyuJM-1580569244503)(https://github.com/fansichao/file/blob/master/picture/Linux%20vi.png?raw=true)]
vim使用技巧
# 全局替換 %s/old/new/g # 指定行數替換 100,120/old/new/g # 文字字符 \ 格式化字符, \r 換行符 /g 全局替換 %s 全局查找 \+ 表重複一次或屢次 x+ /c 確認替換 # 刪除文章中的空行 g/^s*$/d ^s*$ :匹配空行,其中^表示行首,s表示空字符,包括空格和製表符,*重複0到n個前面的字符,$表示行尾。連起來就是匹配只有空字符的行,也就是空行。 /d :刪除該行 # 刪除行尾空格: :%s= *$== %s全局查找替換 =爲%s命令的分隔符,若是把=換爲/,則該命令能夠寫爲:%s/ *$// 」 *$」, $表示行尾,*匹配前面0個到n個字符,*前面是空格,所以此正則表達式匹配行尾的0個到n個字符。 ==,分隔符沒有中間沒有內容,表示刪除匹配空格, 在這裏表示刪除行尾空格。 # 去掉文件中^M ^M = Ctrl v + Ctrl m # 刪除換行符: :%s/\n//g # 將連續的兩個空行替換成一個空行: :%s/\n\n/\r/g # 刪除三行空行: :%s/^\n\{3}// # 合併行 命令J使兩行合併爲一行,同時用空格分隔這兩行。 # 替換str爲str+回車 回車在vim的輸入方法是ctrl+V,會獲得^,此時再按回車.會獲得^M這個就是回車了 所以把全文件全部str換成str回車的語句是: : 1,$ s/str/str^M/g ^M用上面的方法輸入 1,$表示從1到最後一行,s是switch,g是global ### vim刪除包含指定字符串的全部行 :g/something/d # 刪除包含something的全部行
set nu set ts=4 # 設置 長度爲四個空格 set expandtab # tab鍵設置爲空格 set paste # 智能粘貼 set shiftwidth # 程序自動縮進 set softtabstop=4/8/16 # tab鍵爲四個空格或者製表符,8爲製表符,4爲空格,能夠同時產生製表符和空格
Vim中的一些設置
:set fileformat 設置文件格式 :set endofline 設置文件結束符 :set noendofline 取消文件結束符 :%s/\n//g 刪除換行符 :set textwidth 設置行寬 :set textwidth 設置行邊距 :join 合併多行J合併兩行
注意:不要拿Decimal和str進行比較,會致使結果徹底錯誤。 注意:字段的格式
Linux文件比對
vimdiff a.txt b.txt # 效果 左右分割 顏色標記顯示 (須要安裝vim包)
diff -wy --suppress-common-lines a.txt b.txt # 效果 左右分割 推薦使用
查看端口
netstat -lntp | grep 5000
經常使用命令:sort -u xxx uniq # 去重重複連續出現的記錄 sort -u 等價於 sort xxx | uniq # 刪除Linux文件重複行 sort -n test.txt | uniq
userdel -r xxx # 徹底刪除用戶
userdel xxx # 只能刪除部分用戶,像/home/xxx等須要手動刪除
Linux去重
1. ps命令 1. ps -aux | sort -k4nr | head -10 2. top工具 1. top以後,大寫M,按照內存倒序排序 2. top以後,大寫C,按照CPU倒序排序 3. ps -aux | sort -k4,4n
切換用戶運行sh腳本
su - fdm -c 「Command」
poweroff
reboot
shutdown
分別使用~.bash_profile 和 ~.bash_logout能夠作到
tail -f 等同於--follow=descriptor,根據文件描述符進行追蹤,當文件更名或被刪除,追蹤中止 tail -F 等同於--follow=name --retry,根據文件名進行追蹤,並保持重試,即該文件被刪除或更名後,若是再次建立相同的文件名,會繼續追蹤 tailf 等同於tail -f -n 10(貌似tail -f或-F默認也是打印最後10行,而後追蹤文件),與tail -f不一樣的是,若是文件不增加,它不會去訪問磁盤文件,因此tailf特別適合那些便攜機上跟蹤日誌文件,由於它減小了磁盤訪問,能夠省電
jobs //查看任務,返回任務編號n和進程號
free 查看當前內存使用狀況
bg %n //將編號爲n的任務轉後臺運行
fg %n //將編號爲n的任務轉前臺運行
ctrl+z //掛起當前任務
ctrl+c //結束當前任務 發送Terminal到當前的程序,強制結束當前程序,比較暴力
ctrl+d //結束當前任務或退出shell, 發送exit信號
ctrl+|
ctrl+s 暫停屏幕輸出
ctrl+q 恢復屏幕輸出
ctrl+a 切換到命令行開始
ctrl+e 切換到命令行末尾
ctrl+y 在光標處粘貼剪切的內容
rpm -qa
pcp-pmda-kvm-3.10.6-2.el7.x86_64
unoconv-0.6-7.el7.noarch
texlive-fp-svn15878.0-38.el7.noarch
abrt-python-2.1.11-36.el7.centos.x86_64
libcanberra-gtk3-0.30-5.el7.x86_64
pip freeze
效果以下:
tornado4.3
Tornado-JSON1.2.1
urlgrabber3.10 urllib31.10.2 urwid==1.1.1