第七章 linux文本处理工具

文本处理工具

抽取文本的工具

文件内容:less和cat

文件截取:head和tail

按列抽取:cut

按关键字抽取:grep

文件查看

文件查看命令:cat, tac,rev

cat [OPTION]... [FILE]...

-E: 显示行结束符$

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

-A:显示所有控制符

-b:非空行编号

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

tac:行的反向显示

rev:列的反向显示

nl:加行号,空行不加行号。

分页查看文件内容

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(文件没了就提示,小f不提示)

tailf类似tail –f,当文件不增长时并不访问文件(节省资源)

[[email protected] /dev]#tail -f /app/a  -n0 &

&后台运行实时观察a文件的内容变化,-n0如果有新行就出现,旧行不要。

fg和bg:前台和后台运行程序

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

cut [OPTION]... [FILE]...

-d DELIMITER: 指明分隔符,默认tab键作为分隔符。

-f FILEDS:

#: 第#个字段

#,#[,#]:离散的多个字段,例如1,3,6

#-#:连续的多个字段, 例如1-6

混合使用:1-3,7

-c按字符切割

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

[[email protected] ~]#cut -d: -f1,3 /etc/passwd

root:0

bin:1

daemon:2

以:为分隔符,去除其中的用户名和uid。

[[email protected] ~]#cut -d: -f1,3 --output-delimiter=*  /etc/passwd

root*0

bin*1

daemon*2

adm*3

lp*4

指定输出的分隔符为*

cut和paste

显示文件或STDIN数据的指定列

cut-d:-f1/etc/passwd

cat /etc/passwd|cut-d:-f7

cut-c2-5/usr/share/dict/words

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

paste [OPTION]... [FILE]...

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

-s : 所有行合成一行显示

paste f1 f2

paste -s f1 f2

分析文本的工具

文本数据统计:wc

整理文本:sort

比较文件:diff和patch

收集文本统计数据wc

计数单词总数、行总数、字节总数和字符总数(linux中一个汉字三个字节,一个字母一个字节)

字符和字节是两个概念,字节是磁盘上占用的空间大小

可以对文件或STDIN中的数据运行

wc story.txt

39   237  1901  story.txt

行数 字数 字节数

常用选项

-l 只计数行数

-w 只计数单词总数

-c 只计数字节总数

-m 只计数字符总数

-L 显示文件中最长行的长度

文本排序sort

把整理过的文本显示在STDOUT,不改变原始文件

sort[options]file(s)

常用选项

-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:比较两个文件的内容,并不比较两个文件的属性

difffoo.conffoo2.conf

5c5

< use_widgets=no

---

>    use_widgets=yes

注明第5行有区别(改变)

复制对文件改变patch

diff命令的输出被保存在一种叫做“补丁”的文件中

使用-u选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件

patch复制在其它文件中进行的改变(要谨慎使用)

适用-b选项来自动备份改变了的文件

$diff -u  foo.conf foo2.conf>foo.patch

$patch -b foo.conf foo.patch

[[email protected] /app]#cp /etc/fstab  f3

[[email protected] /app]#cp /etc/fstab  f4

[[email protected] /app]#echo a >>f4

[[email protected] /app]#diff f3 f4 -u >f3f4.diff

[[email protected] /app]#ll

total 12

-rw-r--r--. 1 root root 595 Nov 21 09:14 f3

-rw-r--r--. 1 root root 392 Nov 21 09:15 f3f4.diff

-rw-r--r--. 1 root root 597 Nov 21 09:14 f4

[[email protected] /app]#rm -f f4

[[email protected] /app]#patch -b f3 f3f4.diff

patching file f3

[[email protected] /app]#ll

total 12

-rw-r--r--. 1 root root 597 Nov 21 09:15 f3

-rw-r--r--. 1 root root 392 Nov 21 09:15 f3f4.diff

-rw-r--r--. 1 root root 595 Nov 21 09:14 f3.orig

创建f3、f4将两文件不同结果输出到文件f3f4.diff中删除f4,使用patch找回f4,

但找回的文件其实是f3变成了f4,f3实际为备份的f3.orig,通过文件大小也能对比出来。

时间: 2024-10-11 18:13:29

第七章 linux文本处理工具的相关文章

实练Linux文本处理工具(上)

第六章:文本处理工具 文本查看命令(cat) 分页查看文件(more) 文本查看上下翻页(less) 显示头部(head) 显示尾部(tail) 按列抽取文本cut 合并文件paste 收集文本统计数据wc 文本排序sort 删除重复uniq 比较文件diff 复制对文件改变patch 文本搜索工具grep egrep 及扩展的正则表达式 作业: 第六章:文本处理工具 文本查看命令(cat) 命令简介: cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命

linux文本处理工具

linux文本处理工具 1.Linux 文件系统上的特殊权限: SUID     SGID   Sticky 进程的安全上下文:(1)任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行去权限 (2)启动为进程后,其属主为发起者,属组为发起者所属的组 (3)进程访文件的权限,取决于进程的发起者 (a)  进程的发起者,同文件的属主:则应用文件属主权限                                            (b)  进程的发起者,属于文件属组:则

Linux文本处理工具AWK使用解析

在linux系统上有三大文本处理工具分别是:grep,sed,awk,这次主要来看看awk. awk  option  'pattern'  file -F    指定分隔符: -v     申明自定义变量: 查看当前系统上,用户名和用户shell,输出分隔符为~. # awk -F: 'BEGIN{OFS="~";print "UserName   Shell"}{print $1,$7}END{print "================end===

Linux文本处理工具之join,paste

大纲 1.join是什么?有什么作用? 2.join语法格式 3.实战演练 4.引入paste命令 1.join是什么?有什么作用? Linux下最常用的数据文件格式是文本格式的,使用分隔符来区分不同的字段,比如冒号(:).制表符.空格等.像常见的/etc/passwd和 /etc/group两个文件就是用":"来分隔的.这种文本格式我们可以视为文本数据库,既方便人去阅读,也适合程序处理,通常某列类似于数据库中的关键字. join命令就是一个根据关键字合并数据文件的命令(join li

Linux 文本处理工具

Linux 文本处理工具 wc 打印行.词.字节的数量 cut 按列切分文本  sort 排序 uniq 消除重复行 wc 打印行.词.字节的数量 语法: wc [OPTION]... [FILE]... 选项: -l:line 统计行数 -w:words 统计单词数 -c:characters 统计字符数 示例: [[email protected] ~]$ cat wctest hello world 123 [[email protected] ~]$ wc -l wctest    #统

Linux文本处理工具——Grep

Grep简介 全名:Global search Regular expression and Print out the line. 功能:文本搜索工具,根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行. Linux的三大文本处理工具之一,可以说学好grep命令无疑是重要的,可以说学好grep也是不容易的,因为grep里面要用到最烦人的正则表达式. grep语法格式 grep [option]... 'PATTERN' FILE... [option]:表示可以跟选项,

鸟哥的Linux私房菜_基础版_学习笔记3:第七章 Linux文件与目录管理

第七章 Linux文件与目录管理 7.1目录与路径: 7.1.1相对路径与绝对路径: 绝对路径:路径的写法『一定由根目录 / 写起』,例如: /usr/share/doc 这个目录. 相对路径:路径的写法『不是由 / 写起』,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:『cd ../man』这就是相对路径的写法啦!相对路径意指『相对於目前工作目录的路径!』 7.1.2目录的相关操作: . 代表此层目录 .. 代表上一层目录 - 代表前一个工作目录

第六章,文本处理工具和正则表达式

更多笔记点击查看 Linux学习从入门到打死也不放弃,完全笔记整理(持续更新) http://blog.51cto.com/13683480/2095439 笔记整理起始时间:2018年4月7日14:15:07 本章内容: 各种文本工具来查看.分析.统计文本 cat,tac,rev,more,less,head,tail,cut,paste,wc,uniq,sort,diff grep 正则表达式 扩展正则表达式 vim 支持标准输入的命令| cat tr mail bc more less h

Linux文本处理工具三剑客之grep

Linux家族关于文本处理的工具有三个,他们分别为grep.awk和sed,今天我就介绍一下grep文本处理工具. 首先,什么是grep呢? grep是一种文本搜索工具,基于"pattern"对给定文本进行搜索过滤,并对目标文本进行检查,并打印出符合条件的文本的一款文本处理工具.说到pattern,那么pattern又是什么呢?那就是大家所熟知的"正则表达式". grep家族又有三个成员:grep,egrep和fgrep. grep: 支持正则表达式. egrep: