1.awk
awk -F"[分割符]" '{ 动作脚本}'
FS 输入域分隔符,默认为一个空格
RS 输入记录分隔符NF 当前记录里域个数NR 到目前为止记录数例子:
awk -F'\1' BEGIN'{sum=0;}''{ sum+=$1;}'END'{print sum}' puresult.txt
awk ' BEGIN { FS="[: \t|]" }{print $1,$2,$3}'
awk -F"<num_iid>" '{for(i=2;i<=NF;i++) print $i}' x |awk -F"<" '{if(NR<=20)print $1;}' >y
2.grep
grep '[0-9]\{18\}' file查找文件里符合模式的行
grep -C 10 ‘string’ file 罗列file里包含string的行的内容,以及前后10行内容
grep -rl ‘string’ file 不罗列细节,只显示包含该string的文件名
3.sed
Sed 利用script来处理文本文件
Sed ‘s/^old$/new/’替换处理 /不能省略
4.文件属性相关
du *-sh 查看文件大小
wc -l 查看文件行数
ls -l 查看权限
find -name 查找文件
more 类似cat b查看上一页,space 查看下一页, h查看说明
less 更好用,还可以用gg定位到开头,G定位到末尾
5.chmod
chmod o+w xxx.xxx
o+w表示给其他人授予写xxx.xxx这个文件的权限
+ -
rwx 读写执行
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
6.sort
sort -n -k 2 -t :
-n 表示按数值排序
-t :指定分隔符号
-k 2 指定排序 因子 是第二列
-u 可以去重
-r 逆序
7.paste
paste -d , file1 file2
将file1和file2行行合并
-d 指定分隔符号
8.系统相关
top查看进程,u指定用户,k删除进程
ulimit -a ulimit -c unlimited 记录core 便于查看错误,用gdb导入 core
screen 虚拟终端 Ctrl+a+d暂时退出,exit关闭。screen -r id
9.用命令实现文件的并、交、差
并:cat file1 file |sort -u
差:grep -F -f b a -v
交:cat file1 file2 | sort | uniq -d
10.大小写转换
cat oops.txt | tr "[a-z]" "[A-Z]" > result.txt
11.定时任务crontab
前5个字段的意思 分钟(0-59) 小时(0-23) 日期(1-31)月份(1-12)星期(0-6)
crontab -l 查看定时任务
crontab -r 删除定时任务
crontab file 以file为任务文件载入
12.vim
全局替换命令为::%s/源字符串/目的字符串/g
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
按v进入visual状态,选择多行,用>或<缩进或缩出
按ctrl v进入visual状态,选择多行,按x 删除固定列
13.其它
md5sum md5 加密,用于检验 数据传输 是否正确
iconv -t utf-8 -f gbk 1221退款订单初始化.csv > 1221退款订单初始化.utf8.csv
scp -P port1 file1 name@host:/home/file2 将当前目录下的file1文件拷贝到 host/name:port 下的file2目录下