文本处理

2023年 9月 23日 50.7k 0

文本处理

文本查看命令

抽取文本的工具

  • 文件内容:less和cat
  • 文件截取:head和tail
  • 按列抽取:cut
  • 按关键字抽取:grep

文件查看

  • 文件查看命令: cat,r tac, rev
  • cat [OPTION].…. [FILE]... -E:显示行结束符$ -n:对显示出的每一行进行编号 -A:显示所有控制符 -b:非空行编号 -s:压缩连续的空行成一行
  • tac
  • rev

分页查看文件内容

  • more:分页查看文件 more [OPTIONS...] FILE... -d:显示翻页及退出提示
  • less:一页一页地查看文件或STDIN输出 查看时有用的命令包括: /文本搜索文本 n/N 跳到下一个或上一个匹配
  • less 命令是man命令使用的分页器

显示文本前或后行内容

  • head [OPTION].….[FILE]... -c #:指定获取前#字节 -n #:指定获取前#行 -#:指定行数
  • tail [OPTION].….[FILE]... -c #:指定获取后#字节 -n#:指定获取后#行 -#:同上 -f:跟踪显示文件fd新追加的内容,常用日志监控,相当于--follow=descriptor -F:跟踪文件名,相当于--follow=name --retry
  • tailf 类似tail -f,当文件不增长时并不访问文件

文本处理命令

按列抽取文本cut和合并文件paste

  • cut OPTION]... [FILE]... -d DELIMITER:指明分隔符,默认tab -f FILEDS: #:第#个字段 #,#[#]:离散的多个字段,例如1,3,6 #-#︰连续的多个字段,例如1-6 混合使用:1-3,7 -c按字符切割 --output-delimiter=STRING指定输出分隔符
  • 显示文件或STDIN数据的指定列 cut -d: -f1 /etc/passwd cat /etc/passwd | cut -d: -f7 cut -c2-5 /usr/shar/dict/words
  • paste合并两个文件同行号的列到一行 paste [OPTION]... [FILE]... -d分隔符:指定分隔符,默认用TAB -s∶所有行合成一行显示 示例: paste f1 f2 paste -s f1 f2

分析文本的工具

  • 文本数据统计:wc
  • 整理文本: sort
  • 比较文件:diff和patch

收集文本统计数据

  • 计数单词总数、行总数、字节总数和字符总数
  • 可以对文件或STDIN中的数据运行 wc story.txt 39 237 1901 story.txt 行数 字数 字节数
  • 常用选项 -l 只计数行数 -w 只计数单词总数 -c 只计数字节总数 -m 只计数字符总数 -L 显示文件中最长行的长度

文本排序

  • 把整理过的文本显示在STDOUT,不改变原始文件 sort [options] file(s)

  • 常用选项

    -r执行反方向(由上至下)整理 -R随机排序 -n执行按数字大小整理 -f选项忽略(fold)字符串中的字符大小写 -u选项(独特,unique)删除输出中的重复行 -t c 选项使用c做为字段界定符 -k X 选项按照使用c字符分隔的X列来整理能够使用多次

uniq

  • uniq命令︰从输入中删除前后相接的重复的行
  • uniq [OPTION].…. [FILE]... -C:显示每行重复出现的次数 -d:仅显示重复过的行 -u:仅显示不曾重复的行 注:连续且完全相同方为重复
  • 常和sort命令一起配合使用: sort userlist.txt | uniq -c

比较文件

  • 比较两个文件之间的区别 diff foo.conf foo2.conf 5c5 use _widgets = yes 注明第5行有区别(改变)

复制对文件改变patch

  • diff命令的输出被保存在一种叫做“补丁”的文件中 使用 -u 选项来输出“统一的(unified) " diff格式文件,最适用于补丁文件
  • patch 复制在其它文件中进行的改变(要谨慎使用) 适用-b选项来自动备份改变了的文件 dif -u foo.conf foo2.conf > foo.patch patch -b foo.conf foo.patch

Linux文本处理三剑客

  • grep:文本过滤(模式: pattern)工具 grep, egrep, fgrep (不支持正则表达式搜索)
  • sed: stream editor,文本编辑工具
  • awk: Linux上的实现gawk,文本报告生成器

grep

  • grep: Global search REgular expression and Print out the line 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行 模式:由正则表达式字符及文本字符所编写的过滤条件
  • grep [OPTIONS] PATTERN[FILE...] grep root /etc/passwd grep "USER"/etc/passwdgrep′USER"/etc/passwd grep 'USER"/etc/passwdgrep′USER'/etc/passwd grep whoami/etc/passwd

grep命令选项

--color=auto:对匹配到的文本着色显示 -v:显示不被pattern匹配到的行 -i:忽略字符大小写 -n:显示匹配的行号 -c:统计匹配的行数 -o:仅显示匹配到的字符串 -q:静默模式,不输出任何信息 -A #: after,后#行 -B #: before,前#行 -C # : context,前后各#行 -e:实现多个选项间的逻辑or关系 grep -e '`'cat' -e 'dog' file -w:匹配整个单词 -E:使用ERE -F:相当于fgrep,不支持正则表达式 -f file:根据模式文件处理

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论