Linux下grep、tail、wc、awk文件处理命令
2016-12-04 16:37
477 查看
grep
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并匹配行打印出来。命令语法:
usage:grep[-abcDEFGHhIiJLlmnOoqRSsUVvwxZ][-Anum][-Bnum][-C[num]][-epattern][-ffile][--binary-files=value][--color=when]
[--context[=num]][--directories=action][--label][--line-buffered]
[--null][pattern][file...]
命令实例:
-c:计算匹配到的行数,并显示结果;➜~pingwww.cnblogs.com>blog.log|tail-fblog.log PINGwww.cnblogs.com(42.121.252.58):56databytes 64bytesfrom42.121.252.58:icmp_seq=0ttl=32time=26.616ms 64bytesfrom42.121.252.58:icmp_seq=1ttl=32time=26.738ms 64bytesfrom42.121.252.58:icmp_seq=2ttl=32time=26.482ms 64bytesfrom42.121.252.58:icmp_seq=3ttl=32time=26.485ms 64bytesfrom42.121.252.58:icmp_seq=4ttl=32time=26.325ms ^C ➜~grep-c26.616blog.log 1
-C2:显示匹配行,并显示之前与之后的两行,也就是一共显示5行;
➜~grep-C226.616blog.log PINGwww.cnblogs.com(42.121.252.58):56databytes 64bytesfrom42.121.252.58:icmp_seq=0ttl=32time=26.616ms 64bytesfrom42.121.252.58:icmp_seq=1ttl=32time=26.738ms 64bytesfrom42.121.252.58:icmp_seq=2ttl=32time=26.482ms
-A2:显示匹配行,并显示之后的两行;
➜~grep-A226.616blog.log 64bytesfrom42.121.252.58:icmp_seq=0ttl=32time=26.616ms 64bytesfrom42.121.252.58:icmp_seq=1ttl=32time=26.738ms 64bytesfrom42.121.252.58:icmp_seq=2ttl=32time=26.482ms
-v:显示不包含匹配行的所有行;
➜~grep-v26.616blog.log PINGwww.cnblogs.com(42.121.252.58):56databytes 64bytesfrom42.121.252.58:icmp_seq=1ttl=32time=26.738ms 64bytesfrom42.121.252.58:icmp_seq=2ttl=32time=26.482ms 64bytesfrom42.121.252.58:icmp_seq=3ttl=32time=26.485ms 64bytesfrom42.121.252.58:icmp_seq=4ttl=32time=26.325ms
-color:显示匹配内容,并用不同颜色突出显示;
➜~grep--color26.616blog.log 64bytesfrom42.121.252.58:icmp_seq=0ttl=32time=26.616ms
tail
tail命令是线上机器查看log最常用的命令,可以从指定点开始将文件写到标准输出,tail-f可以查看不停打出的日志文件,使你看到最新的log日志。命令语法:
usage:tail[-F|-f|-r][-q][-b#|-c#|-n#][file...]命令实例:
-f:监视File文件增长;➜~pingwww.cnblogs.com>blog.log|tail-fblog.log PINGwww.cnblogs.com(42.121.252.58):56databytes 64bytesfrom42.121.252.58:icmp_seq=0ttl=32time=26.250ms 64bytesfrom42.121.252.58:icmp_seq=1ttl=32time=25.807ms 64bytesfrom42.121.252.58:icmp_seq=2ttl=32time=25.966ms 64bytesfrom42.121.252.58:icmp_seq=3ttl=32time=25.939ms 64bytesfrom42.121.252.58:icmp_seq=4ttl=32time=25.833ms 64bytesfrom42.121.252.58:icmp_seq=5ttl=32time=25.862ms 一直显示下去。。。
-q:与-f相反,将文件内容直接显示出来,默认显示文件从后往前数10行的内容;
➜~tail-qblog.log PINGwww.cnblogs.com(42.121.252.58):56databytes 64bytesfrom42.121.252.58:icmp_seq=0ttl=32time=26.250ms 64bytesfrom42.121.252.58:icmp_seq=1ttl=32time=25.807ms 64bytesfrom42.121.252.58:icmp_seq=2ttl=32time=25.966ms 64bytesfrom42.121.252.58:icmp_seq=3ttl=32time=25.939ms 64bytesfrom42.121.252.58:icmp_seq=4ttl=32time=25.833ms 64bytesfrom42.121.252.58:icmp_seq=5ttl=32time=25.862ms
-n:从后往前数,显示指定的行数,一般-f结合使用:-fn,比如-fn20,一次当前显示文件的最后20行,并不停显示文件的最新内容;
➜~pingwww.cnblogs.com>blog.log|tail-fn1blog.log PINGwww.cnblogs.com(42.121.252.58):56databytes 64bytesfrom42.121.252.58:icmp_seq=0ttl=32time=25.813ms 64bytesfrom42.121.252.58:icmp_seq=1ttl=32time=26.363ms 64bytesfrom42.121.252.58:icmp_seq=2ttl=32time=26.218ms 64bytesfrom42.121.252.58:icmp_seq=3ttl=32time=26.292ms 一直显示下去。。。
显示文件内容的同时,显示行号(并不是文件的行号,而是当前显示的行号):
➜~pingwww.baidu.com>baidu.log|tail-fn500baidu.log|awk'{printNR,$0}'【或者pingwww.baidu.com>baidu.log|tail-fn500baidu.log|cat-n】 1PINGwww.a.shifen.com(61.135.169.125):56databytes 264bytesfrom61.135.169.125:icmp_seq=0ttl=51time=6.030ms 364bytesfrom61.135.169.125:icmp_seq=1ttl=51time=3.815ms 464bytesfrom61.135.169.125:icmp_seq=2ttl=51time=3.964ms 564bytesfrom61.135.169.125:icmp_seq=3ttl=51time=3.775ms
从后往前数文件2行直接显示出来:
tail-n2baidu.log
从文件的第二行开始显示文件剩余部分:
tail-n+2baidu.log
wc
Linuxwc命令用于计算字数。利用wc指令我们可以计算文件的Byte数、字数、或是列数,不制定文件名或者文件名为“-”,则wc会从标准输入设备读取数据。命令语法:
usage:wc[-clmw][file...]命令实例:
-c或--bytes或--chars显示Bytes数:➜~catblog.log PINGwww.cnblogs.com(42.121.252.58):56databytes 64bytesfrom42.121.252.58:icmp_seq=0ttl=32time=25.762ms 64bytesfrom42.121.252.58:icmp_seq=1ttl=32time=25.733ms 64bytesfrom42.121.252.58:icmp_seq=2ttl=32time=26.556ms ➜~wc-cblog.log 238blog.log
显示行数:-l,显示字数或单词数:-w:
➜~wc-lblog.log 4blog.log ➜~wc-wblog.log 30blog.log
不过以上都可以直接wcfilename,输出值的含义对应上面两个例子:
➜~wcblog.log 430238blog.log
awk
awk是一种处理文本文件的语言,是一个强大的文本分析工具。命令语法:
awk[选项参数]'script'var=valuefile(s)或
awk[选项参数]-fscriptfilevar=valuefile(s)
命令实例:
直接看栗子,就不解释了:➜~catblog.log PINGwww.cnblogs.com(42.121.252.58):56databytes 64bytesfrom42.121.252.58:icmp_seq=0ttl=32time=25.762ms 64bytesfrom42.121.252.58:icmp_seq=1ttl=32time=25.733ms 64bytesfrom42.121.252.58:icmp_seq=2ttl=32time=26.556ms ➜~awk'{print$1$2}'blog.log PINGwww.cnblogs.com 64bytes 64bytes 64bytes
➜~awk'{print$1"->>"$2}'blog.log PING->>www.cnblogs.com 64->>bytes 64->>bytes 64->>bytes
awk的详情看
相关文章推荐
- Linux下grep、tail、wc、awk文件处理命令
- Linux基础篇之文本、数据流处理命令(sed uniq grep awk wc)
- Linux中正则表达式与文件格式化处理命令(awk/grep/sed)
- Linux基础篇之文本、数据流处理命令(sed uniq grep awk wc)
- Linux中正则表达式与文件格式化处理命令(awk/grep/sed)
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- 文件内容操作命令 cat、more、less、head、tail、wc、grep 命令详情
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- 利用多核CPU来加速Linux命令 — awk、sed、bzip2、grep、wc
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- 【转】如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- linux字符处理工具tail, awk, grep
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等