Linux常用命令-文本处理 Linux文本处理工具 文本处理工具 文件查看 cat 分页查看文件内容 显示文本前或后行内容 抽取文本cut 合并文件 分析文本的工具 比较文件
文本处理工具
- 文件内容: less 和cat
- 文件截取:head和tail
- 按列抽取:cut
- 按关键字抽取:grep
文件查看 cat
Usage: cat [OPTION]... [FILE]... -E 显示行的结束符号$ -n 显示每一行的行号 -b 给非空行编号 -s 折叠空行为一行
tac 倒序显示文件
分页查看文件内容
- more 分页查看文件
- more [options…] file...
- -d 显示翻页以及退出提示
- 空格翻一屏,回车翻一行
- 输出自己退出
- less 一页一页的查看文件或stdin输出
- / 文本 搜索文本
- 空格一屏 回车一行
- n 向下搜索 N 向上搜索
- q来退出
- less 命令是man命令使用的分页器
显示文本前或后行内容
- head [option] … [file]… 默认10行
- -c # 指定获取前#字节
- -n # 指定获取前#行
- -# 指定获取前#行
- tail [options]…[file]… 默认10行
- -c #指定获取后#字节
- -n # 指定获取后#行
- -# 指定获取后#行
- -f 追踪显示文件fd新追加的内容,常用与日志监控
- tailf 类似于 tail -f 当文件不增长时并不访问文件
抽取文本cut
cut [option] ... [FILE] ... -d 指明分隔符,默认tab -f # 第#个字段 #,#[,#] 离散的多个字段,例如1,3,6 #-# 连续的多个字段 混合使用:1-3,7 -c 按照字符切割 cut -d: -f1 /etc/passwd cat /etc/passwd|cut -d: -f7 cut -c2-5 /etc/passwd
合并文件
paste 合并两个文件同行号的列到一行 paste[option]...[file]... -d 分隔符 指定分隔符,默认是tab -s 所有行合并成一行显示 paste f1 f2 paste -d: f1 f2 paste -s f1 f2
分析文本的工具
文本数据统计 wc (word count)
- 计数单词总数、行总数、字节总数和字符总数
- 可以对文件或者stdin中的数据进行统计
[root@centos ~]#wc a.sh 4 5 30 a.sh 行数 字数 字节数 文件 -l 只统计行数 -w 只统计单词总数 -c 只统计字节总数 -m 只统计字符总数 -L 显示文件中最长行的长度
文本排序 sort
把整理过的文本显示在stdout 不改变原始文件
sort [options] files 默认是字母排序 -r 执行倒序排列 -R 随机排序 -n 按数字大小排序 -f 忽略大小写
-t 指定切割符号 -t c 执行分隔符 -k 按第几列来进行排序
删除重复行 uniq
从输入中删除前后相接的重复的行
uniq [option] ...[file] -c 显示每行重复出现的次数 -d 仅显示重复过的行 -u 仅显示不曾重复的行 连续且完全相同才为重复 经常使用方案 sort filename |uniq -c
ss -tnp|cut -d: -f2|tr -s " "|cut -d" " -f2|sort -n|uniq -c
比较文件
diff filename filename
[root@localhost jiangyi]#echo "abc" >b [root@localhost jiangyi]#echo "abcd" >d [root@localhost jiangyi]#diff b d 1c1 < abc --- > abcd [root@localhost jiangyi]#echo "abcde" >b [root@localhost jiangyi]#diff b d 1c1 < abcde --- > abcd [root@localhost jiangyi]#echo "abcde" >> b [root@localhost jiangyi]#diff b d 1,2c1 < abcde < abcde --- > abcd [root@localhost jiangyi]#echo "abcd" >> b [root@localhost jiangyi]#diff b d 1,2d0 < abcde < abcde