文本处理工具

文本处理工具

  • 文本内容 : cat,more,less
  • 文件截取: head,tail
  • 按列抽取: cut
  • 排序和统计: sort,wc
  • 按关键字抽取: grep

cat 命令

Usage: cat [OPTION]... [FILE]...正则表达式

-A: 显示全部控制符  -vETcentos

-E: 显示行结束符bash

-n:对显示出的每一行进行编号less

-b:非空行编号   = nl 命令dom

-s:压缩连续的空行成一行工具

 

$ cat <<-EOF >a.txt     //多行重定向centos7

    你想输入的文字spa

    你想输入的文字.......net

    EOF日志

 

nl 命令

tac 命令

对每一行的内容进行倒序输出

rev 命令

对一行的内容进行逆向输出

more 命令

Usage: more [options] file...

-d:显示翻页及退出提示

less 命令

head 命令

Usage: head [OPTION]... [FILE]...

-c #    指定获取前#字节

-n #    指定获取前#行  (#为负数,就是文件的倒数第#行,从第一行开始一直到倒数第#行,排除倒数第#行)

-# 指定行数

tail 命令

Usage: tail [OPTION]... [FILE]...

-c #    指定获取后#字节

-n #    指定获取后#行(-n +3 表示从第3行开始一直到最后一行)

-# 同上

-f    跟踪文件描述符fd,用做日志监控

-F    跟踪文件名

tailf 相似于tail -f ,当文件不增加时并不访问文件

cut 命令

Usage: cut OPTION... [FILE]...

-d    指明分隔符

-f    fileds

    #    第#个字段

    #,#[,#]:   离散的多个字段

    #-#:连续的多个字段

    -c    按字符切割

    --output-delimiter=STRING 指定输出分隔符

    --complement  表示取 -c|-f后的字段相反的列

root]# ifconfig ens33|head -2|tail -1|tr -s ' '|cut -d' ' -f3  //取 ip

root]# tr -dc '[:alnum:]' < /dev/urandom |head -c12    // 从 urandom文件中取 “字母数字”12个

root]# df|tr -s " "|cut -d" " -f5|tr -dc '[0-9\n]'  //取出使用率

root]# df|tr -s " " "%"|cut -d% -f5|tr -d '[:alpha:]'

root]# df|cut -c44-46

root]# cat /var/log/messages |cut -d" " -f1-3,6-

文件的合并 paste 命令

paste 合并两个文件同行号的列到一行

    -d    分隔符:指定分隔符,默认用TAB

    -s    全部行合成一行显示 

wc 命令

Usage: wc [OPTION]... [FILE]...

-l     行数

-w    单词数

-c    字节数

-m    字符数

-L    文件中最长行的长度

sort 命令

sort [options] file(s)

-r    执行反方向(由上至下)整理

-R    随机排序

-n    执行按数字大小整理

-f    选项忽略字符串中的字符大小写

-u    选项删除输出中的重复行

-t "分隔符"    使用#作为字段定界符

-k #    选项按照使用"分隔符"字符分隔的 # 列来整理可以使用屡次

uniq 命令

uniq 命令:从输入中删除先后相接的重复的行

uniq  [option]...[file]...

    -c 显示每行重复出现的次数

    -d 仅显示重复过的行

    -u 仅显示未曾重复的行

    注:连续且彻底相同方为重复

常和 sort 命令一块儿配合使用:

    sort userlist.txt |uniq -c

root]# lastb -f btmp.txt |tr -s " "|cut -d' ' -f3|sort|uniq -c|sort -nr|head

root]# file btmp.txt

btmp.txt: DBase 3 index file

lastb命令能够打开 DBase 3 index file 类型的文件

root]# netstat -nt|tr -s " " ":"|cut -d: -f6|sort|uniq -c|sort -nr

比较文件 diff

[root@CentOS7 data]# cat a.txt 
a
d
e
f
b
[root@CentOS7 data]# cat b.txt 
a
b
c

[root@CentOS7 data]# diff -u a.txt b.txt |tee diff.txt
--- a.txt    2019-11-19 16:48:35.031046643 +0800
+++ b.txt    2019-11-19 16:29:14.884986531 +0800
@@ -1,5 +1,3 @@      //第一个文件的1到5行,第二个文件的1到3行
 a
-d                   //去掉d
-e                   //去掉e
-f                   //去掉f
 b
+c                //增长c ,就变成第二个文件了

[root@CentOS7 data]# rm -f b.txt

[root@CentOS7 data]# patch -b a.txt diff.txt 
patching file a.txt

[root@CentOS7 data]# ll
total 12
-rw-r--r-- 1 root root   6 Nov 19 16:57 a.txt           //b.txt
-rw-r--r-- 1 root root  10 Nov 19 16:48 a.txt.orig   // a.txt文件
-rw-r--r-- 1 root root 126 Nov 19 16:53 diff.txt

grep 命令

打印包含匹配模式的行

--color=auto    对匹配的文本着色显示

-m #    匹配#次后中止

-v    显示不被pattern匹配到的行

-i    忽略字符大小写

-n    显示匹配的行号

-c    统计匹配的行数

-o    仅显示匹配到的字符串

-q    静默模式,不输出任何信息

-A #    后#行

-B #    前#行

-C #    先后各#行

-e    实现多个选项间的逻辑关系

-w    匹配整个单词(字母、数字、下划线组成)

-E    支持扩展的表达式

-F    至关于fgrep,不支持正则表达式

-f file.txt    根据模式文件处理

[root@CentOS7 ~]# nmap -v -sP 192.168.1.0/24|grep -B1 up|grep "Nmap scan report for"|cut -d "(" -f2|tr -d ")"
[root@CentOS7 ~]# nmap -v -A 192.168.1.1
相关文章
相关标签/搜索