文本处理工具
1.文件内容查看命令
文件查看命令:cat
cat [OPTION]… [FILE]…
- -E: 显示行结束符$
- -n: 对显示出的每一行进行编号
- -A:显示所有控制符
- -b:非空行编号
- -s:压缩连续的空行成一行
tac 倒过来显示,cat命令的结果以x轴为中心旋转180度。
rev 输出结果以Y轴为中心,旋转180度。
nl 显示行号
2.分页查看文件内容
- 分页查看文件内容:more
more [OPTIONS…] FILE…
-d: 显示翻页及退出提示,不能往上翻页
- less:一页一页地查看文件或STDIN输出
查看时有用的命令包括:
/文本 搜索 文本
n/N 跳到下一个 或 上一个匹配
less 命令是man命令使用的分页器
3.显示文本前或后行内容
3.1head获取前n字节
head [OPTION]… [FILE]…
● -c #: 指定获取前#字节 (取随机数常用)
➢ 取10位随机数
● cat /dev/urandom | tr -dc “[:alpha:]” | head -c10 | xargs
➢ Centos7 简单命令组合取IP
● ifconfig | head -n2 | tail -n1 | tr -s “ “ | cut -d” “ -f3
➢ Centos6 简单命令组合取IP
● ifconfig | head -n2 | tail -n1 | tr -s “ “ “:” | cut -d”:” -f4
➢ 取centos主版本
● cat /etc/redhat-release| tr -dc “[:digit:].” | cut -d”.” -f1
● -n #: 指定获取前#行
➢ 取/etc/passwd 前五行
● cat /etc/passwd | head -n5
3.2tail获取后n字节
tail [OPTION]… [FILE]…
● -c #: 指定获取后#字节
● -n #: 指定获取后#行
● -f: 跟踪显示文件fd新追加的内容,常用日志监控 (常用)
➢ 相当于 —follow=descriptor
● -F: 跟踪文件名,相当于—follow=name —retry
➢ tailf 类似tail –f,当文件不增长时并不访问文件
3.3cut取列
按列抽取文本cut
cut [OPTION]… [FILE]…
● -d DELIMITER: 指明分隔符,默认tab
➢ cut -d: -f1 /etc/passwd
➢ cut /etc/passwd | cut -d: -f7
● -f FILEDS:
➢ #: 第#个字段
➢ #,#[,#]:离散的多个字段,例如1,3,6
➢ #-#:连续的多个字段, 例如1-6
➢ 混合使用:1-3,7
➢ -c 按字符切割
● cut -c 1-5 /etc/passwd
➢ —output-delimiter=STRING指定输出分隔符
3.4paste
paste合并两个文件同行号的列到一行
paste [OPTION]… [FILE]
● -d 分隔符:指定分隔符,默认用TAB
● -s : 所有行合成一行显示
● 模向合并
➢ paste f1 f2 > 1.file
● 纵向合并
➢ cat f1 f2 > 1.file
● paste -s f1 f2
3.5wc统计
文本数据统计:wc
● 计数单词总数、行总数、字节总数和字符总数
● 以对文件或STDIN中的数据运行
➢ wc story.txt
➢ 39 237 1901 story.txt
➢ 行数 字数 字节数
常用选项
● -l 只计数行数
● -w 只计数单词总数
● -c 只计数字节总数
● -m 只计数字符总数
● -L 显示文件中最长行的长度
实例
● 统计inux系统单词个数
➢ cat /usr/share/dict/linux.words | wc -l
● 统计多少个登陆用户
➢ who | wc -l
● 统计主机被远程连接次数
➢ netstat -nt | sed “1,2d” | wc -l
3.6sort排序
文本排序sort
sort [options] file(s)
常用选项
● -r 执行反方向(由上至下)整理
● -R 随机排序
● -n 执行按数字大小整理
● -f 选项忽略(fold)字符串中的字符大小写
● -u 选项(独特,unique)删除输出中的重复行
● -t c 选项使用c做为字段界定符
● -k X 选项按照使用c字符分隔的X列来整理能够使用多次
cat /etc/passwd | sort -n -t: -k3
3.7uniq去重
uniq命令:从输入中删除前后相接的重复的行
uniq [OPTION]… [FILE]…
● -c: 显示每行重复出现的次数
● -d: 仅显示重复过的行
● -u: 仅显示不曾重复的行
● 注:连续且完全相同方为重复
常和sort 命令一起配合使用:
● sort userlist.txt | uniq -c
● 取单词
➢ tr -s “ “ “\n” < f1 | sort | uniq -c | sort -nr | head -n3
● 取两个文件交集
➢ cat f1 f2 | sort | uniq -d
➢ grep -f f1 f2 (相当于把f1里的内容作为f2的匹配条件)
