Linux中常用的文本处理命令(echo、sort、uniq、tr、cut)

112 阅读4分钟

文本处理命令

一、echo命令——输出

echo 命令主要用来显示字符串信息。

echo命令格式:echo 【选项] 字符串

常用选项

-n:表示不换行输出

-e:表示输出转义符(字符串必须加引号,转义符才生效)

常用的转义符

选项作用
\n插入换行符,输出换行
\r光标移至行首,并且不换行
\s当前shell的名称,如bash
\t插入Tab键(即制表符)
\f换行,但光标仍停留在原处
\ \表示插入\本身
\b插入退格键,表示退格,不显示前一个字符
\c抑制更多的输出或不换行

注意

  • 转义符需结合-e同时使用,且字符串必须加引号

  • 除了echo -n  和echo -e  "XXXXXX\c" 两种方式输出的内容结尾不会携带换行符,echo其它输出方法都会默认携带一个换行符\n

示例

image.png

image.png

二、sort命令——排序

sort将文件的每一行作为一个单位相互比较,比较原则是从首字符向后依次按ASCII码进行比较,最后将它们按升序输出。(以行为单位来排序输出)

sort命令格式

  • sort [选项] 参数

  • cat file | sort 选项

常用选项

常用选项作用
-n按照数字进行排序(默认升序)
-r反向排序(倒序)
-u等同于uniq,表示相同的数据仅显示一行
-t指定字段分隔符,默认使用Tab键分隔
-k指定排序字段(不指定则默认第一个字段)
-f忽略大小写,会将小写字母都转换为大写字母来进行比较
-b忽略每行前面的空格
-o <输出文件>将排序后的结果转存到指定文件中

示例

image.png

  1. 不加任何选项,则默认按首字母排序。

image.png

  1. -n,按照数字排序(默认升序)。

image.png

  1. -r,倒序。默认是升序排列,加-r后是降序排列。

image.png

  1. -u,合并重复行,相同数据只显示一行。

image.png

三、uniq命令——去重

uniq命令用于报告或者忽略文件中连续的重复行,常与sort命令结合使用。

uniq命令格式

  • uniq [选项] 参数

  • cat file | uniq 选项

常用选项

常用选项作用
-c统计连续重复的行的次数,并且合并重复的行
-u显示仅出现一次的行(包括不连续的重复行)
-d仅显示重复出现的行(必须是连续的重复行)

示例

image.png

  1. uniq不加选项,只会对连续的重复行进行去重。

image.png

  1. uniq -c,显示连续重复行出现的次数,并合并重复行。

image.png

  1. uniq -u,显示仅出现过一次的行(但包括不连续的重复行)。

image.png

四、tr命令——删除、替换、压缩

tr命令常用来对来自标准输入的字符进行替换、压缩和删除。

tr命令格式:cat file | tr [选项] 参数

常用选项

选项作用
-c保留字符集1的字符,其他字符包括换行符\n用字符集2替换
-d删除所有属于字符集1的字符
-s将连续重复的字符串压缩成一个
-t字符集2 替换 字符集1,不加选项效果相同

常用参数:

参数说明
字符集1指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”
字符集2指定要转换成的目标字符集
示例

1.将所有小写字母替换为大写

image.png

  1. -c,保留字符集1的字符,其他字符包括换行符\n用字符集2替换。

image.png

  1. -d,删除所有属于字符集1的字符。

image.png

  1. -s,将连续重复的字符串压缩成一个。

image.png

5.使用tr命令,将冒号(":")替换为换行符("\n")

image.png

6.使用tr命令删除文件中的空行(即压缩换行符)

image.png

五、cut命令——截取字段或字符串

用于显示行中的指定部分,删除文件中指定字段。

cut命令格式

  • cut [选项] 参数

  • cat file | cut [选项] 参数

常用选项

选项作用
-d指定分隔符(默认分隔符为Tab)
-f n按字段进行截取。指定第n个字段;1-3表示从第1个字段到第3个字段;1,4,7表示第1、第4、第7个字段
-b以字节为单位进行截取
-c以字符为单位进行截取
–complement排除所指定的字段
–output-delimiter更改输出内容的分隔符

示例

  1. -d 指定分隔符,-f 按字段进行截取。

image.png

  1. -f,连续的字段使用"-"连接,不连续的字段之间使用逗号。

image.png

  1. –complement,排除所指定的字段。

image.png

  1. –output-delimiter,更改输出内容的分隔符。

image.png

1.截取字符串的常用方法

常用的三种方法:

 1.${i:起始下标值:截取长度}      
 #i是变量,字符的下标值从0开始。例如 ${i:0:2} 

 2.echo $i | cut -c 1-3
 #-c表示按字符截取,字符下标值从1开始,起始位置-终止位置。1是起始位置,3是终止位置。

 3.expr substr $i 1 3 
 #下标值从1开始。1代表起始位置,3代表截取的字符长度。