常用shell命令笔记

将时间转换为时间戳

date -d "2017-11-09 14:12:25" +%s
> 1510207945

将时间戳转换为时间(后面的输出格式可以参考man date)

date -d @1510207945
> Thu Nov  9 14:12:25 CST 2017

date -d @1510207945 "+%Y-%m-%d"
> 2017-11-09

date -d @1510207945 "+%F %T"
> 2017-11-09 14:12:25

 查看摸个目录下各个文件大小

sudo du -h --max-depth=1
sudo du --max-depth=1 -BM | sort -nr

查看都有那些用户登录

w / who

 统计某个单词在文件中的出现的次数

zgrep/grep -Po "关键字" 文件 | awk  '{print $1}' | sort | uniq -c | awk '{if($1>10) print $0}' | sort -k1nr

 awk根据某列去重

根据第一列去重
cat x.file |awk '!a[$1]++{print $0}'


awk 'a[$0]++' filename   //用于输出重复的行

awk '!a[$0]++' filename //用于去掉重复的行

其主要的原理,是利用AWK的数组a, 用每一行作为索引,如果行不存在 a[$0], 返回 0。 a[$0]++先返回,而后++。第二次读到相同的行,a[$0]++返回非0值。

取最后一个字符
 cat x.file | awk '{print $NF}'

awk根据条件替换行里的部分值

#文件 test2.txt 内容如下
a,2
b,1
c,2
e,3
k,8

# 替换第一个值为 b、c、e 的行 第二个值改为 0
cat test2.txt| awk -F, 'BEGIN{arr["b"]=1; arr["c"]=1; arr["e"]=1;} { if(arr[$1]){ print $1",0"} else {print $1","$2}}'

 

shell函数

https://www.cnblogs.com/meitian/p/5662022.html

 

posted @ 2017-11-09 14:26  halu126  阅读(231)  评论(0编辑  收藏  举报