Linux常用命令-文本处理

Linux文本处理工具

  文本处理工具

  • 文件内容: 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
原文地址:https://www.cnblogs.com/Xiao_Xu/p/11284838.html