【Linux】高效文本处理命令

目录

一.sort命令(排序)

1.语法格式

2.常用选项

3.相关示例

3.1.

3.2.

二.unip命令(去重)

1.语法格式

2.常用选项

3.相关示例

3.1.

3.2.

三.tr命令(替换)

1.语法格式

2.常用选项

3.相关示例

3.1.

4.删除空行

方法1

方法2

补充:

1.Windows的另起一行格式(\r\n)转换成 Linux的另起一行格式(\n)

方法1

方法2

2.对数组排序

四.cut命令(裁剪)

1.语法格式

2.常用选项

3.字符串分片 

3.1.

3.2.

3.3.

五.split命令(拆分)

1.语法格式

2.常用选项

3.拓展(面试题)

3.1.

3.2.

六.paste命令(合并)

1.语法格式

2.常用选项

3.补充(合并文件)

3.1.合并文件的行

3.2.合并文件的列

拓展:

eval命令(扫描)

相关示例


一.sort命令(排序)

  • 以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
  • 比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出

1.语法格式

sort [选项] 参数

XXX | sort 选项

2.常用选项

-n按照数字的大小进行排序

-r

倒序排序(配合-n使用)
-u相当于下面的那个命令uniq,去重复的行(只保留一行重复内容)
-t指定字段的分隔符
-k指定排序的字段
-o<输出文件>另保存输出排序的结果(相当于重定向输出)
-f忽略大小写,把小写字母也当作大写字母看待
-b忽略每行前面的空格

3.相关示例

3.1.

sort -n
[root@localhost day15]# vim 1.txt
[root@localhost day15]# sort -n 1.txt
33
45
65
155 
353
545
888
9999
35653
65623
94545

3.2.

sort -n -r

二.unip命令(去重)

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

1.语法格式

uniq [选项] 参数

XXX | uniq 选项

2.常用选项

-c进行计数,并删除文件中重复出现的行
-u显示仅出现一次的行(包括不连续的重复行)
-d仅显示重复出现的行(必须是连续的重复行)

3.相关示例

3.1.

uniq  -c 

3.2.

uniq  -u

三.tr命令(替换)

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

1.语法格式

XXX | tr 选项 '参数1' ['参数2']

2.常用选项

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

3.相关示例

3.1.

tr  -s

4.删除空行

方法1

cat 文件 | grep -v "^$"

方法2

cat 文件 | tr -s "\n"

补充:

1.Windows的另起一行格式(\r\n)转换成 Linux的另起一行格式(\n)

方法1

cat 文件 | tr -d '\r' > 新文件

方法2

yum install -y dos2unix 

2.对数组排序

echo ${数组名[@]} | tr ' ' '\n' | sort -rn | tr '\n' ' '

四.cut命令(裁剪)

  • 对字段进行截取和剪裁

1.语法格式

cut [选项] 参数
 
cat file | cut [选项] 参数 

2.常用选项

-d '分隔符' -f 字段序号根据 -d 指定的分隔符的截取显示 -f 指定的字段
--complement取反,不显示 -f 指定的字段
--output-delimiter '分隔符'指定输出的字段分隔符
 

3.字符串分片 

3.1.

echo ${变量:下标:长度}                       下标起始从0开始

3.2.

echo $变量 | cut -b 起始下标-终止下标         下标起始从1开始

3.3.

expr substr $变量 起始下标 长度              下标起始从1开始

五.split命令(拆分)

  • 用于在Linux下将大文件拆分为若干小文件

1.语法格式

split 选项 参数 原始文件 拆分后文件名前缀

2.常用选项

-l根据行数分割文件
-b根据大小分割文件
-d输出的目标文件后缀用数字替代
 

3.拓展(面试题)

3.1.

如何将一个10G文件分割为10个1G的文件

 split -b 1G -d 原文件  目标文件名前缀

3.2.

如何将一个100行文件分割为10个10行的文件

split -l 10 -d 原文件  目标文件名前缀

六.paste命令(合并)

  • 将多个文件按照列进行合并

1.语法格式

paste   [选项]    文件1     文件2

2.常用选项

-d '分隔符' 指定输出的字段分隔符
-s将每个列横向输出

3.补充(合并文件)

3.1.合并文件的行

cat 文件1 文件2  ... > 新文件

3.2.合并文件的列

paste -d '分隔符' 文件1 文件2 ... > 新文件

拓展:

eval命令(扫描)

  • 在命令行执行前,先将命令行里的变量置换成对应的值后,再执行命令

相关示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值