Linux 中常用的文本(行)处理命令(转)

Linux 中常用的文本(行)处理命令

0、正则表达式(regular expression)

元字符(如下图)是正则表达式中含有的字符,在正则表达式中可以在字符串中使用元字符以匹配字符串的各种可能的情况。

注意:

(1) 在“[ ]”中还可以使用“-”来表示某一范围。例如“[a-z0-9]”匹配任意的小写字母或者数字,“[^A-Z]”表示非大写字母,“[0-9]{8}”表示任意一个8位数字。

(2) 元字符还可以配合使用:

“.*”可以匹配任意个字符,如“r.*d”会匹配“rd”、“red”、“read”。

“.+”可以匹配任意的一个或者多个字符,如“r.+d”会匹配“red”、“read”,但不会匹配“rd”。

“.?”可以匹配任意的零个或一个字符,如“r.?d”会匹配“rd”、“red”,但不会匹配“read”。

“^$”匹配空白行。

(3) 在[ ]中还可以使用一些特殊匹配模式,如下表:

以“\”开头得元字符

1、   grep命令

命令说明:按行处理,输出文件中包含搜索字符串的所有行。

格式:grep [-acinv] ‘搜索字符串’ filename

参数说明:

-a:在二进制文件中,以文本文件的方式搜索数据;

-c:计算找到“搜索字符串”的次数;

-i:忽略大小写;

-n:输出行号;

-v:反向选择;

-E:扩展正则表达式

例子:在文件a.txt中搜索包含字符串good或glad的行:

grep -E ‘g(oo|la)d‘ a.txt

找到以字母a结尾的单词:

grep -E ‘a[[:blank]]‘ a.txt

grep -E ‘a\\b‘ a.txt

2、find命令

命令说明: 查找符合条件的文件

格式:find [path] [options][tests] [actions]

参数说明:

3、cut命令

命令说明:按行处理,将一行消息的某段切出来。

格式:cut -d ‘分割字符‘ -f fields

cut -c m-n

例如:echo $PATH | cut -d ‘:‘ -f 3,5,取出环境变量PATH中的第3个和第5个路径。

echo $PATH | cut -d ‘:‘ -f 3-5,取出环境变量PATH中的第3个到第5个路径。

export | cut -c 12-, 将export中的每行的前面11个字符删除留,保留从第12个字符开始的所有字符。

4、awk工具

命令说明: 将一行消息分成数个段来处理,适合处理小型的数据。

格式:awk ‘条件类型 {动作}‘ file

awk的内置变量:

$n:该行的第n个字段;

NF:每一行拥有的字段总数;

NR:当前行的行号;

FS:分隔符,默认为空格键;

例如:cat /etc/passwd | awk ‘BEGIN {FS=":"} $S3<10 {print $1 "\t" $3}‘,打印passwd文件第三栏小于10的行的第1、3栏。

5、sed工具

命令说明: 分析STDIN的数据,将数据处理后,输出到STDOUT。

格式:sed [-nefr] 动作

参数说明:

-n:安静模式,仅显示经过sed特殊处理的行;

-e:直接在命令行模式进行sed的操作编辑;

-f file:将sed操作写在一个文件中;

-r:支持扩展正则表达式语法;

动作说明:[n1[, n2]] functions

其中,n1和n2代表“选择进行操作的行数”,function有下面这些操作:

a:新增,例如:nl /etc/passwd | sed ‘2a Hello World‘,在/etc/passwd第2行下面新增一行,写入"Hello
World"。

i:插入,例如:nl /etc/passwd | sed ‘2i Hello World‘,在/etc/passwd第2行上面新增一行,写入"Hello World"

c:替换,例如:nl /etc/passwd | sed ‘2,5c Hello World‘,将/etc/passwd第2至5行的内容替换为“Hello
Wolrd”。

d:删除,例如:nl /etc/passwd | sed ‘2,5d‘,删除/etc/passwd中的第2至5行。

p:打印,例如:nl -n /etc/passwd | sed ‘2,5p‘,仅显示2到5行,注意,如果不加-n,2到5行将重复输出。

s:搜索,例如:nl /etc/passwd | sed ‘1,20s/old/new/g‘,将第1~20行中出现的所有字符串old替换为new。

6、sort命令

命令说明:将文本文件的内容按行排序。

格式:sort [-fbMnrtuk] [file or stdin]

参数说明:

-f:忽略大小写;

-b:忽略最前面的空格;

-u:即uniq,重复行仅出现一次;

-M:以月份的名字来排序;

-n:使用“纯数字”来排序;

-r:反向排序;

-t:分隔符,默认为tab键;

-k:按指定字段排序;例如:
cat /etc/passwd | sort -t ‘:‘ -k 3,对文件/etc/passwd以第三栏排序。

7、uniq命令

命令说明:如果排序完成了,将重复的行仅显示一次。注意,若文件未排序,该命令失效。

格式:uniq [-ic]

参数说明:

-i:忽略大小写;

-c:统计每行重复的次数;

8、wc命令

命令说明:统计文本文件中有多少字,多少行,多少字符。

格式:wc [-lwm]

参数说明:

-l:仅显示行数;

-w:仅显示字数(英文单词个数);

-m:字符数;

9、tee命令

命令说明:双向重导向,从标准输入读取数据,输出到屏幕上,同时保存成文件。

格式:tee [-a] file

参数说明:

-a:以累加的方式,将数据加入到file中。

例如:ls -al /home | tee ~/myfile | more,将ls命令的数据存一份到myfile中,同时屏幕也有输出数据。

10、tr命令

命令说明:单个字符的处理工具,可以用于删除字符、替换字符等基本功能。更复杂的字符串处理工具通常使用sed。

格式:tr [-ds] SET1....

参数说明:

-d:删除,例如:cat file | tr -d ‘\r‘,相当于dos2unix命令所起的作用。

-s:替换字符,例如:cat file | tr -s [0-9],如果某个数字连续出现,仅保留第一个。

cat file | tr [a-z] [A-Z],将file中的小写字符全部改为大写。

11、col命令

命令说明:格式化显示列。

格式:col [-x]

参数说明:

-x:将tab键转换成对等的空格键;

例如:cat -A /etc/man.config | col -x | cat -A,使用cat -A,tab键会以^I显示,经过col -x处理,tab替换为空格。

12、expand命令

命令说明:将tab键转换成空格键。

格式:expand [-t] file

参数说明:

-t n:后面可以接一个数字n,一个tab键替换为n个空格键,默认值为8。

13、join命令

命令说明:处理两个文件中有相同数据的行,将它们加在一起。

格式:join [-ti12] file1 file2

参数说明:

-i:忽略大小写;

-t:分隔符,默认为空格符;

-1 m:指定file1用来比较的字段m,默认值为1;

-2 n:指定file2用来比较的字段n,默认值为1;

14、paste命令

命令说明:比较两个文件的数据关联性,直接将“两行贴在一起”,中间以tab键隔开。

格式:paste [-d] file1 file2

参数说明:

-d:后面接分隔符,默认为tab键。

15、diff命令

命令说明:以“行”为单位进行文件比较,一般用在ASCII纯文本文件。

格式:diff [-bBi] file1 file2

参数:

-b:忽略一行中有多个空白的差异;

-B:忽略空白行的不同;

-i:忽略大小写;

16、cmp命令

命令说明:以“位”为单位进行文件比较,可以比较二进制文件。

格式:cmp [-s] file1 file2

参数:

-s:将所有不同点的位都列出来,默认仅输出第一个发现的不同点;

17、patch命令

命令说明:diff old new > patch_file命令可以找出new文件与old文件不同的地方,然后用patch命令给old文件打上补丁,即与new文件相同了。

格式:patch -pN < patch_file

参数:-pN表示取消N层目录。

18、split命令

命令说明:将一个大文件拆分为几个小文件。

格式:split [-bl] fle

参数说明:

-b:拆分的文件大小,可加单位,如b, k, m等;

-l:按行数进行拆分;

例如:split -b 512k bigfile smallfile,将文件bigfile按512K拆分,拆分后的文件依次为:smallfileaa、smallfileab等。

split -l 10 bigfile smallfile,将文件bigfile中的每10行拆分成一个小文件。

19、xargs命令

时间: 2024-10-13 01:07:56

Linux 中常用的文本(行)处理命令(转)的相关文章

Linux中常用的查看系统信息的命令

Linux中常用的查看系统信息的命令 导读 Linux是一个神奇而又高效的操作系统,学完Linux对Linux系统有一个熟悉的了解后,你需要了解下这些实用的查看系统信息的命令. 查看系统版本命令 uname 谈到系统版本就一定会想到uname,查看系统内核版本 uname -参数 其他的什么-n -m -r 参数都忽略,直接-a [[email protected] ~]#uname -a Linux linuxprobe.com 2.6.32-358.el6.x86_64 #1 SMP Tue

Linux中常用的查找文件的命令

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料(参考资料1),因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. which       查看可执行文件的位置 whereis    查看文件的位置 locate       配合数据库查看文件位置 find          实际搜寻硬盘查询文件名称 (find也可以根据文件大小-size 时间-atime 正则表达式-regex) 1.which 语法:  [r

linux中常用的文本处理工具

在linux文件系统中经常会使用到文本处理工具,这里简单介绍几种文本处理工具: 抽取文本的工具 文件内容:less和cat 文件截取:head和tail 按列抽取:cut 按关键字抽取:grep , egrep 文件查看命令:cat, tac,rev,more,less cat命令是用户经常使用的用来查看文本文件的命令,cat命令是需要接收到标准输入然后再标准输出设备上.并且和cat命令相对应的还有tac,tev两个命令. 语法:cat [OPTION]... [FILE]... 常用选项: -

Linux中常用的命令

linux中一些经常用到的命令 1. ls(list)列表:把当前文件夹的所有文件显示出来 ls -a :显示所有文件 ls -l :以详细信息显示 可以:ls -la/-al/-a -l/-l -a 这几种方式表达的意思都是:显示所有文件的详细信息 2. man:查询man手册,获得帮助信息 比较常用的方式: man 1 ls :1表示查询的是linux的命令,这里是查询ls命令的用法 man 2 xx :2表示查询的是linux的api man 3 xx :3表示查询的是c库函数(譬如man

Linux中常用命令 &lt;一&gt;

本笔记中记录的命令来源于 <Linux C 编程实战> ----------------------------------------------------------------------------- 1.查看当前目录命令 pwd 2.改变当前目录 cd 3.显示目录或文件信息命令 ls 格式: ls [选项] <目录或文件名> 主要选项如下: -a 显示所有的文件和目录 -l  以长格式显示文件信息 -t 将结果按修改时间进行排序,新的文件或目录在前面 -R 递归列出目

linux下常用的文本转换命令1(tr)

Linux下常用的文本转换和处理命令 tr命令 tr:替换.压缩或删除字符 格式:tr [OPTION]... SET1 [SET2] 选项: -c complement 使用字符集2替换字符集1中没有包含的字符(默认换行符也算在内) -d delete 删除字符集1中的所有字符,不进行转换 -s squeeze-repeats 把字符集1中的重复的字符压缩成一个 -t --truncate-set1 将字符集1中对应的字符用字符集2替换 (一般默认) 例子: -c 替换:  # echo "a

详解Linux中的cat文本输出命令用法

作系统 > LINUX > 详解Linux中的cat文本输出命令用法 Linux命令手册   发布时间:2016-01-14 14:14:35   作者:张映    我要评论 这篇文章主要介绍了Linux中的cat文本输出命令用法,是Linux入门学习中的基础知识,需要的朋友可以参考下 cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的.一.功能cat主要有三大功能:1.一次显示整个文件. 复制代码 代码如下: $ cat filename 2.从键盘创建一个文件. 复

linux中常用的压缩、解压命令详解

不管在windows中还是在linux中,我们会经常看到各种压缩的文件,此刻我们需要使用就得解压,在这就介绍介绍linux中解压.压缩的命令. 在做实验之前,我们先创建几个文件,大小都是100M,方便我们更能清晰理解. 一.compress[选项]file(不是太常用,而且tab键还不能补齐) ①compress file 压缩文件,其中我们可以看到compress压缩的文件是.Z结尾的压缩包. ② -d file 解压文件,但压缩文件会丢失,相当于uncompress 在这我们可以看到,不管是

Linux 中常用命令

命令基本格式: 命令提示符:[[email protected] ~]#      root 代表当前的登录用户(linux当中管理员账号是root)      @ 无实际意义      localhost 代表当前计算机的主机名      ~ 表示当前所在目录(家目录)      # 表示超级用户的提示符 (普通用户为$) 命令格式: 命令 [选项] [参数] ([]表示可以省略)      个别命令的使用不遵循次格式      当有多个选项时,可以写在一起      简化选项和完整选项 -a