文本处理工具

1.cat
主要三大功能:
1.一次显示整个文件:cat filename
2.从键盘创建一个文件:cat > filename << EOF ….>EOF (只能创建新文件,不能编辑已有文件);cat向已经存在的文件追加内容:cat >> file <<EOF…>EOF
3.将几个文件合并为一个文件:cat file1 file2 > file;cat 把一个或多个已经存在的文件内容,追加到一个已存在的文件中: cat file1 file2 file3 >> file4
ps:>是创建,>>是追加
命令参数:
cat [option] filename
cat -v: 显示非打印字符
-E :显示行结束符$
-T :显示TAB
-n :对显示出的每一行进行编号,显示行号
-s :将连续的重复空行变成一行
-A = -vET:  显示所有控制符

-b :非空行编号

2.more
功能:more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以分页来查看文件的内容,还支持直接跳转行等功能。
命令参数:
more [optiions…] file
+n :从笫n行开始显示
-n :定义屏幕大小为n行,即每屏显示n行。(屏幕最下面显示了该屏展示的内容占文件总行数的比例,按 Ctrl+F 或者 空格键 将会显示下一屏5条内容,百分比也会跟着变化。)
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c :从顶部清屏,然后显示
-d :提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l :忽略Ctrl+l(换页)字符
-p :通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s :把连续的多个空行显示为一行
-u :把文件内容中的下画线去掉
 
3.less
功能:less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。(一页一页的查看文件或STDIN(标准输入)输出)

命令参数:
-b <缓冲区大小>: 设置缓冲区的大小
-e :当文件显示结束后,自动离开
-f :强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g :只标志最后搜索的关键词
-i :忽略搜索时的大小写
-m :显示类似more命令的百分比
-N :显示每行的行号
-o <文件名> :将less 输出的内容在指定文件中保存起来
-s :显示连续空行为一行
-S :行过长时间将超出部分舍弃
-x <数字> :将“tab”键显示为规定的数字空格
4.head
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
命令参数:
head -n 数字 filename      显示前 n行
-n 行号                         显示前n行
– 行号                           显示前n行
-c 字节数                      显示前n个字节
-v                               显示文件名
-q                               隐藏文件名
显示文件的除了最后n个字节以外的内容 ,命令:head -c -数字 filename
输出文件除了最后n行的全部内容,命令:head -n -数字 filename
5.tail
功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
命令参数:
tail -c <数目> :显示后_字节数
-n <行数> :显示后_行数
— <行号> :显示后_行
-f :循环读取,动态显示
-q :不显示处理信息
-v :显示详细的处理信息
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, –quiet, –silent 从不输出给出文件名的首部
-s, –sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
6.cut
功能:cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。
命令主要参数:
cut [option] [file]
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指 定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符,(只能在-d后面设置一个空格,不许设置多个空格,因为cut只允许间隔符是一个字符)。
-f :与-d一起使用,指定显示哪个区

-n : 取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节 落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该 字符将被排除。

例子:

1.

文本处理工具

(-3表示从第一个字节到第三个字节,而3-表示从第三个字节到行尾。两种情况下,都包括了第三个字节“c”。执行who|cut -b -3,3-,是输出整行,不会出现连续两个重叠的c的。)

2.

因为-b和-c只能在固定格式的文档中提取信息,而对于非固定格式的信息则用域。

cut命令提供了这样的提取方式,具体的说就是设置“间隔符”,再设置“提取第几个域”。
文本处理工具
(用-d来设置间隔符为冒号,然后用-f来设置要取的是第一个域,再按回车,所有的用户名就都列出来了。在设定-f时,也可以使用例如3-5或者4-类似的格式)

3.

设定一个空格为间隔符 :cut -d ‘ ‘ -f1
两个单引号之间可确实要有一个空格,只能在-d后面设置一个空格,不许设置多个空格,因为cut只允许间隔符是一个字符。
7.paste
功能:paste 指令会把每个文件以列对列的方式,一列列地加以合并。
命令参数:
-d<间隔字符>或–delimiters=<间隔字符> : 用指定的间隔字符取代跳格字符。
-s或–serial  : 将每个文件合并成行而不是按行粘贴
–help  :在线帮助。
–version:显示帮助信息。
[file…] :指定操作的文件路径
– :使用标准输入
语法:
paste f1 f2 [f3] 合并制定文件的内容
paste -s f1 将文件内容变成一行显示 也可以用 tr ‘\n’ ‘\t’ 实现
paste -d “” f1 f2 [f3] 合并后的分隔符,默认TAB

8.wc

功能:wc即Word count,为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。(统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。)
命令参数:
语法:wc 命令
-c :统计字节数。
-l :统计行数。
-m :统计字符数。这个标志不能与 -c 标志一起使用。
-w :统计单词数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L :打印最长行的长度。
-help :显示帮助信息
–version :显示版本信息
wc  行数   单词数   字节

9.sort

功能:依据不同的数据类型进行排序
命令参数:

-r :执行反方向(由上至下)整理 (sort默认的排序方式是升序)

-n :执行按数字大小整理
-f :选项忽略(fold)字符串中的字符大小写
-u :选项(独特,unique)删除输出中的重复行
-t c :选项使用c做为字段界定符(-t :分隔符,默认是用 [tab] 键来分隔)
-k X :选项按照使用c字符分隔的X列来整理能够使用多次
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
例子:

找出分区利用率最大的值

文本处理工具

10.uniq
功能:从输入中删除前后相接的重复的行
命令参数:
uniq [option] [file]
-c: 显示每行重复出现的次数
-d:仅显示重复过的行
-u:仅显示不曾重复的行(连续且完全相同方为重复)
-i : 忽略大小写字符的不同
常和sort命令一起配合使用(为了使uniq起作用,所有的重复行必须是相邻的
sort userlist.txt | uniq -c

11.diff  patch
功能:diff命令能比较单个文件或者目录内容。如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。如果指定比较的是目录的的时候,diff 命令会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。
命令参数:
diff file1 file2 比较file1和file2的区别
diff -u f1 f2 > diff.log 生成补丁
diff f2 f2.rm 比较还原回来的新文件与被删除的文件,发现没有区别。

patch -b f1 diff.log    通过补丁还原文件 ,生成的f1为原来的f2,fi.orig为原f1

mv f2 f2.rm 相当于删除了文件。
mv f1 f2 还原原始的新文件名
mv f1.orig f1 还原原始的旧文件名

12.grep
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
命令参数:
grep [options] pattern [file]
–color=auto 将匹配的结果着色显示
-v 反向匹配、
-i 忽略大小写
-n 显示的结果前增加行号
-c 仅显示匹配到结果的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息 或者 &> /dev/null
-A# 显示关键字行及向后#行
-B# 显示关键字行及向前#行
nmap -v -sP 172.17.252.0/24 |grep -B1 “Host is up”|grep for |cut -d” ” -f5 |wc -l
-C# 显示关键字向前#行,当前行,及向后#行
-e 关键字1 -e 关键字2 实现多个选项间的逻辑or关系
-w 匹配整个单词
-E 使用扩展正则表达式 或egrep
-F 不使用正则表达式 或 fgrep
13.pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^: 匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<: 从匹配正则表达 式的行开始。
\>: 到匹配正则表达式的行结束。
[ ]: 单个字符,如[A]即A符合要求 。
[ – ]: 范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。: 所有的单个字符。
* : 有字符,长度可以为0。

14、正则表达式

(1)

. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:alnum:] 或 [0-9a-zA-Z]
[:alpha:] 或 [a-zA-Z]
[:upper:] 或 [A-Z]
[:lower:] 或 [a-z]
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃…)
[:digit:] 十进制数字 或[0-9]
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号

(2)

*  匹配前面的字符任意次,包括0次

            贪婪模式:尽可能长的匹配

        .*  任意长度的任意字符

        \?  匹配其前面的字符0 或1次

        \+  匹配其前面的字符至少1次

        \{n\}  匹配前面的字符n次

        \{m,n\}  匹配前面的字符至少m 次,至多n次

        \{,n\}  匹配前面的字符至多n次

        \{n,\}  匹配前面的字符至少n次

15.egrep扩展的正则表达式
扩展的正则表达式
egrep = grep -E
egrep [options] pattern [file]
扩展正则表达式的元字符:
字符匹配:
. 任意单个字符
[ ] 指定范围的字符
[^] 不在指定范围的字符
次数匹配:
* : 匹配前面字符任一次
?:0或1次
+ : 1次或多次
{m} : 匹配m次
{m,n} : 至少m,至多n次
位置锚定:
^ : 行首
$ :行尾
\ <, \b :语首
\> ,\b :语尾
分组:
()
后向引用 :\1 ,\2
或者:
a|b :a或 b
C | cat :C或
cat
(C|c)at :Cat 或cat

原创文章,作者:Light Yagami,如若转载,请注明出处:http://www.178linux.com/83164

(0)
Light YagamiLight Yagami
上一篇 2017-07-29
下一篇 2017-07-29

相关推荐

  • N25第一周作业

    第一周作业 一、计算机由硬件系统和软件系统两部分组成如下: 计算机硬件由CPU、内存、输入设备、输出设备组成。 1、中央处理器(CPU,Central Processing Unit)   CPU的功能主要是对输入指令的判断和运算;CPU包括运算器、控制器和寄存器三部分; (1)、运算器   执行各种算术和逻辑运算操作,计算机运行时,运算…

    Linux干货 2016-12-05
  • 进程和优先级

         什么是进程?我们先来了解一下进程的概念:我们知道操作系统最核心的概念就是进程。进程简单来说就是在操作系统中运行的程序,它是操作系统资源管理的最小单位。但是进程是一个动态的实体,它是程序的一次执行过程。进程和程序的区别在于:进程是动态的,程序是静态的,进程是运行中的程序,而程序是一些保存在硬盘上的可执行代码。    当多个任务要执行时怎么办呢?先执行…

    2017-09-09
  • day6总结

    主要内容: useradd与usermod对比 groupadd与groupmod对比 passwd与chage对比 gpasswd与groupmems对比 切换用户 chown与chgrp用法 一般权限与特殊权限 chmod用法   useradd创建用户的初始信息存放在/etc/login.defs和/etc//default/useradd文…

    系统运维 2016-08-08
  • shell脚本编程

    shell俗称壳(用来区别于核),提供使用者使用界面(命令解析器),它接受用户命令,然后调用相应的应用程序。 同时它还是一种程序设计语言,作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设计好的一连串的命令。作为程序涉及语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 一、shell脚本基础概念 …

    Linux干货 2016-08-16
  • UID SGID与chmod 777的一些问题

    先来看问题 问题来了:echo的行为返回是对的还是vi是对的? 现场分析: vi 和 echo 都被设置为SGID权限。 abc文件所在的父目录权限是777 echo无法写abc文件,而vi是可以的 当时被问到这个问题时,我也是一征,怎么会这样。加之SUID,SGID在企业应用很少,如此这么久早忘了一干二净,只是赶紧去补课~,但经过30MIN后依然没有找到问…

    Linux干货 2016-08-08
  • N22-第一周作业

    1、描述计算机的组成及功能      计算机系统由硬件系统和软件系统组成。硬件系统(Hardware system)是计算机完成计算工作  的物质基础。软件系统(Software system):是在计算机硬件设备上运行的各种程序,是介于用户  和硬件系统之间的界面。1.1 计算机的硬件系…

    Linux干货 2016-08-22