前言:在linux环境下通常需要对某个日志文件或者一些其他文件进行内容的提取或者筛选,而这些在没有强大的工具的情况下我们只能通过命令拼接进行提取,以下对文件内容提取筛选做出整理以及演示
简单命令整理:
cat :打开文件命令
awk : 文件分析命令
| : 管道
'{}' :文件操作
print : 新文件中输出
"*" : 新文件输出的内容,*代表所有
$ n: 在新文件中输出第n列
"\n" :在新文件中输出换行
> : 重定向,即定义输出文件命令
& : 后台运行
在linux环境下 touch 个文件number,里面内容如下:
a 192.168.17.1
b 192.168.17.3
c 192.168.17.3
d 192.168.17.2
e 192.168.17.3
f 192.168.17.2
1.系统查看文件中指定关键词出现的次数
grep -o ‘192.168.17.2’ number|wc -l
输出结果:
2
解释:
grep 命令用于查找文件里符合条件的字符串
‘192.168.17.2’ 是指定的关键词
number 是指定的文件
wc -l 统计次数 (wc -l number也可表示取number文件总行数)
2.统计文件指定列中字符串出现次数并降序排列
awk ‘{print $2}’ number|sort -r|uniq -c|head -2
输出结果:
3 192.168.17.3
2 192.168.17.2
解释:
akw 文件分析命令,后面跟参数 -F ‘,’ 表示列之间按逗号分割
‘{print $2}’ 输出文件中第二列
number 指定的文件
sort 排序命令 -r(降序)
uniq 分组唯一 (相同为一组)
head -2 取前两个
3.将文件筛选出来的内容输入到新文件中
awk ‘{print $1}’ number>number2
输出结果:
number文件内容如下
a
b
c
d
e
f
解释:
number 表示原文件
number2 表示新文件
.>表示重定向到
完结:如果错误或者疑问,欢迎指出…