Linux 简单的文本处理
Linux 简单的文本处理
文本处理命令
tr 命令
1 | # 用来删除一段文本信息中的某些文字。或者将其进行转换。 |
常用选项:
选项 | 说明 |
---|---|
-d | 删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配 |
-s | 去除set1指定的在输入文本中连续并重复的字符 |
常用操作:
1 | # 删除 "hello shiyanlou" 中所有的'o','l','h' |
col 命令
1 | # col 命令可以将Tab换成对等数量的空格键,或反转这个操作 |
常用选项:
选项 | 说明 |
---|---|
-x | 将Tab转换为空格 |
-h | 将空格转换为Tab(默认选项) |
操作举例:
1 | # 查看 /etc/protocols 中的不可见字符,可以看到很多 ^I ,这其实就是 Tab 转义成可见字符的符号 |
join命令
1 | # 用于将两个文件中包含相同内容的那一行合并在一起 |
常用选有:
选项 | 说明 |
---|---|
-t | 指定分隔符,默认为空格 |
-i | 忽略大小写的差异 |
-1 | 指明第一个文件要用哪个字段来对比,,默认对比第一个字段 |
-2 | 指明第二个文件要用哪个字段来对比,,默认对比第一个字段 |
操作举例:
1 | # 创建两个文件 |
paste命令
1 | # 在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。 |
常用选项:
选项 | 说明 |
---|---|
-d | 指定合并的分隔符,默认为Tab |
-s | 不合并到一行,每个文件为一行 |
操作举例:
1 | $ echo hello > file1 |
作业
1、在《文件打包与解压缩》一节实验中提到 Windows/dos 与 Linux/UNIX 文本文件一些特殊字符不一致如断行符 Windows 为 CR+LF(\r\n),Linux/UNIX 为 LF(\n)。
使用cat -A 文本可以看到文本中包含的不可见特殊字符。Linux 的\n表现出来就是一个$,而 Windows/dos 的表现为 ^M$,可以直接使用dos2unix和unix2dos工具在两种格式之间进行转换,使用file命令可以查看文件的具体类型。
不过现在希望你在不使用上述两个转换工具的情况下,使用前面学过的命令手动完成 dos 文本格式到 UNIX 文本格式的转换。
1 | $ cat -A file | tr '$' '^M$' |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yeureka!