快乐的Linux命令行笔记-文本处理

第一天的笔记-基本的命令和使用方法
第二天的笔记-操作文件
第三天的笔记-查阅命令文档并创建命令别名
第四天的笔记-重定向标准输入和输出以及处理查询结果
第五天的笔记-命令的展开
第六天的笔记-快捷键
第七天的笔记-文件权限
第八天的笔记-进程
第九天的笔记-修改shell环境
第十天的笔记-vim入门
第十一天的笔记-自定义shell提示符
第十二天的笔记-软件包管理系统
第十三天的笔记-创建映像
第十四天的笔记-网络
第十五天的笔记-查找文件
第十六天的笔记-压缩
第十六天的笔记-正则表达式

总结

  • 一些文本处理程序
程序名 说明
cat 连接文件并且打印到标准输出
sort 给文本排序
uniq 报告或者省略重复行
cut 从每行中删除文本区域
paste 合并文件文本行
join 基于某个共享字段来联合两个文件的文本行
comm 逐行比较两个有序的文件
diff 逐行比较文件
patch 给原始文件打补丁
tr 翻译或删除字符
sed 用于筛选和转换文本的流编译器
aspell 交互式拼写检查器

关于换行符

Unix文本和MS-DOS文本的区别在于换行符的不同。
Unix文本使用ASCII 10作为换行符, MS-DOS使用ASCII 13和换行字符序列作为换行符。
可以使用 dos2unix 和 unix2dos 程序来转换两种格式的文本。

使用cat和sort处理文本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# foo.txt content:
# a b
#
#
# c
cat -ns foo.txt
#output:
# foo.txt content:
#1 a b
#
#3 c

# 使用sort对文本排序:
sort file1.txt file2.txt file3.txt > file4.txt

常见的sort程序选项:

选项 长选项 描述
-b –ignore-leading-blanks 默认情况下, 对整体的进行排序, 从每行的第一个字符开始。这个选项导致sort程序忽略,每行开头的空格, 从第一个非空白字符开始排序
-f –igonre-case 让排序不区分大小写
-n –numeric-sort 基于字符串的数值来排序。使用此选项允许根据数字值执行排序, 而不是字母值
-r –reverse 按相反顺序排序, 结果按照降序排列, 而不是升序
-k –key=field1[,field2] 对从 field1 到 field2 之间的字符排序, 而不是整个文本行
-m –merge 把每个参数看作是一个预先排好序的文件, 把多个文件合并成一个排好序的文件, 而没有执行额外的排序
-o –output=file 把排好序的输出结果发送到文件, 而不是标准输出
-t –field-separator=char 定义域分割字符, 默认情况下, 域由空格或制表符分割

|


快乐的Linux命令行笔记-文本处理
http://icecreamzhao.github.io/note/read_note/The_Linux_Command_Line/The-Linux-Command-Line-read-note-18Day.html
作者
littleboyDK
发布于
2020年6月3日
许可协议