数据清洗 -大规模数据清洗的利器 文字解析、文字替换等, 速度远快于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