PUB:20170106 12 Useful Commands For Filtering Text for Effective File Operations in Linux.md

@yangmingming
This commit is contained in:
wxy 2017-02-17 08:48:03 +08:00
parent 96d1ffa177
commit 9d9144c0c4

View File

@ -1,15 +1,15 @@
Linux 上 12 个用于高效文件操作的文本过滤命令 Linux 上 12 个高效的文本过滤命令
============================================================ ============================================================
在这篇文章中,我们将会看一些作为 Linux 中过滤器命令行工具。过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出。 在这篇文章中,我们将会看一些 Linux 中过滤器命令行工具。过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出。
因此,它可以用来以强大的方式处理信息,例如重新结构化输出以生成有用的报告,修改文件里面的文本,以及其他很多系统管理任务。 因此,它可以用来以强大的方式处理信息,例如重新结构化输出以生成有用的报告,修改文件里面的文本,以及其他很多系统管理任务。
说到这里,下面是 Linux 上的一些有用的文件或者文本过滤器。 下面是 Linux 上的一些有用的文件或者文本过滤器。
### 1\. Awk 命令 ### 1、 awk 命令
**Awk** 是一个卓越的模式扫描和处理语言,它可被用于在 Linux 下构造有用的过滤器。你可以通过阅读我们的 [Awk 系列 1 到 13 部分][7] 来开始使用它。 **awk** 是一个卓越的模式扫描和处理语言,它可被用于在 Linux 下构造有用的过滤器。你可以通过阅读我们的 [awk 系列 1 到 13 部分][7] 来开始使用它。
另外,也可以通过阅读 **awk** 的 man 手册来获取更多的信息和使用选项。 另外,也可以通过阅读 **awk** 的 man 手册来获取更多的信息和使用选项。
@ -17,12 +17,12 @@ Linux 上 12 个用于高效文件操作的文本过滤命令
$ man awk $ man awk
``` ```
### 2\. Sed 命令 ### 2、 sed 命令
**sed** 是一款过滤和转换文本的强大的流编辑器。我们已经写了两篇关于 sed 的有用的文章,你可以通过这儿来了解: **sed** 是一款过滤和转换文本的强大的流编辑器。我们已经写了两篇关于 sed 的有用的文章,你可以通过这儿来了解:
* [如何使用 GNU sed 命令在 Linux 下创建、编辑和处理文件][1] * [如何使用 GNU sed 命令在 Linux 下创建、编辑和处理文件][1]
* [日常 Linux 系统管理员任务使用的 15 个有用的 sed 命令小贴士和技巧][2] * [日常 Linux 系统管理员任务使用的 15 个有用的 sed 命令小贴士和技巧][2]
sed 的 man 手册已经添加控制选项和说明: sed 的 man 手册已经添加控制选项和说明:
@ -30,11 +30,11 @@ sed 的 man 手册已经添加控制选项和说明:
$ man sed $ man sed
``` ```
### 3\. Grep、 Egrep、 Fgrep、 Rgrep 命令行 ### 3、 grep、 egrep、 fgrep、 rgrep 命令行
这些过滤器输出匹配指定模式的行。们从一个文件或者标准输入读取行,并且输出所有匹配的行,默认输出到标准输出。 这些过滤器输出匹配指定模式的行。们从一个文件或者标准输入读取行,并且输出所有匹配的行,默认输出到标准输出。
**注意**:主程序是 [grep][8]变化与[使用特定的 grep 选项][9]相同,如下所示(为了向后兼容性,它们依旧被使用): **注意**:主程序是 [grep][8]这些变体与[使用特定的选项的 grep][9] 相同,如下所示(为了向后兼容性,它们依旧在使用):
``` ```
$ egrep = grep -E $ egrep = grep -E
@ -53,7 +53,7 @@ aaronkilik:x:1001:1001::/home/aaronkilik:
在 [Linux 下的 grep、 egrep 和 fgrep 的差异?][10]中,你可以了解更多。 在 [Linux 下的 grep、 egrep 和 fgrep 的差异?][10]中,你可以了解更多。
### 4\. head 命令 ### 4 head 命令
**head** 用于显示文件前面的部分,默认情况下它输出前 **10** 行。你可以使用 `-n` 标志来指定显示的行数: **head** 用于显示文件前面的部分,默认情况下它输出前 **10** 行。你可以使用 `-n` 标志来指定显示的行数:
@ -79,7 +79,7 @@ Jan 2 10:51:39 TecMint sudo: pam_unix(sudo:session): session closed for user ro
学习如何 [使用带有 tail 和 cat 命令的 head 命令][11],以便在 Linux 下更有效的使用。 学习如何 [使用带有 tail 和 cat 命令的 head 命令][11],以便在 Linux 下更有效的使用。
### 5\. tail 命令 ### 5 tail 命令
**tail** 输出一个文件的后面的部分(默认 **10** 行)。使用 `-n` 选项来指定显示的行数。 **tail** 输出一个文件的后面的部分(默认 **10** 行)。使用 `-n` 选项来指定显示的行数。
@ -118,7 +118,7 @@ Jan 6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.
$ man tail $ man tail
``` ```
### 6\. sort 命令 ### 6 sort 命令
**sort** 用于将文本文件或标准输入的行进行排序。 **sort** 用于将文本文件或标准输入的行进行排序。
@ -152,18 +152,17 @@ windowsmint.com
你可以有多种方式来使用 sort 命令,请参阅以下一些关于 sort 命令的有用的文章。 你可以有多种方式来使用 sort 命令,请参阅以下一些关于 sort 命令的有用的文章。
* [14 个 Linux sort 命令的有用的示例 第 1 部分][3] * [Linux 的 sort命令的14个有用的范例][3]
* [7 个有趣的 Linux sort 命令示例 第 2 部分][4] * [Linux 的 'sort'命令的七个有趣实例(二)][4]
* [如何基于修改日期和时间来查找和排序文件][5] * [如何基于修改日期和时间来查找和排序文件][5]
* [http://www.tecmint.com/sort-ls-output-by-last-modified-date-and-time/][6]
### 7\. uniq 命令 ### 7 uniq 命令
**uniq** 命令用于报告或者忽略重复行,它从标准输入过滤行,并且把结果写到标准输出。 **uniq** 命令用于报告或者忽略重复行,它从标准输入过滤行,并且把结果写到标准输出。
在对一个输入流运行 sort 之后,你可以使用 uniq 删除重复行,如下例所示。 在对一个输入流运行 `sort` 之后,你可以使用 `uniq` 删除重复行,如下例所示。
为了显示行出现的数目,使用 `-c` 选项,要在对比时忽略大小写的差异,使用 -i 选项: 为了显示行出现的数目,使用 `-c` 选项,要在对比时忽略大小写的差异,使用 `-i` 选项:
``` ```
tecmint@TecMint ~ $ cat domains.list tecmint@TecMint ~ $ cat domains.list
@ -181,13 +180,13 @@ tecmint@TecMint ~ $ sort domains.list | uniq -c
1 windowsmint.com 1 windowsmint.com
``` ```
通过阅读 **uniq** 的 man 手册来获取进一步的使用信息和选项: 通过阅读 `uniq` 的 man 手册来获取进一步的使用信息和选项:
``` ```
$ man uniq $ man uniq
``` ```
### 8\. fmt 命令行 ### 8 fmt 命令行
**fmt** 是一款简单的优化的文本格式化器,它重新格式化指定文件的段落,并且打印结果到标准输出。 **fmt** 是一款简单的优化的文本格式化器,它重新格式化指定文件的段落,并且打印结果到标准输出。
@ -209,7 +208,7 @@ tecmint@TecMint ~ $ fmt -w 1 domain-list.txt
4.windowsmint.com 4.windowsmint.com
``` ```
### 9\. pr 命令 ### 9 pr 命令
**pr** 命令转换文本文件或者标准输入之后打印出来。例如在 **Debian** 系统上,你可以像下面这样显示所有的安装包: **pr** 命令转换文本文件或者标准输入之后打印出来。例如在 **Debian** 系统上,你可以像下面这样显示所有的安装包:
@ -251,11 +250,11 @@ ii avahi-autoipd ii bc ii bluez-obexd
* `--column` 定义在输出中创建的列数。 * `--column` 定义在输出中创建的列数。
* `-l` 指定页面的长度(默认是 66 行)。 * `-l` 指定页面的长度(默认是 66 行)。
### 10\. tr 命令行 ### 10 tr 命令行
这个命令从标准输入转换或者删除字符,然后输出结果到标准输出。 这个命令从标准输入转换或者删除字符,然后输出结果到标准输出。
使用 **tr** 的语法如下: 使用 `tr` 的语法如下:
``` ```
$ tr options set1 set2 $ tr options set1 set2
@ -271,9 +270,9 @@ tecmint@TecMint ~ $ echo "news.tecmint.com" | tr [:lower:] [:upper:]
NEWS.TECMINT.COM NEWS.TECMINT.COM
``` ```
### 11\. more 命令 ### 11 more 命令
**more** 命令是一个有用的文件过滤器,最初为查看证书而建。它一页页显示文件内容,用户可以通过按 [Enter] 来显示更多的信息。 **more** 命令是一个有用的文件过滤器,最初为查看证书而建。它一页页显示文件内容,用户可以通过按回车来显示更多的信息。
你可以像这样使用它来显示大文件: 你可以像这样使用它来显示大文件:
@ -305,11 +304,11 @@ tecmint@TecMint ~ $ dmesg | more
--More-- --More--
``` ```
### 12\. less 命令 ### 12 less 命令
**less** 是和上面的 **more** 命令相反的一个命令,但是它提供了额外的特性,而且对于大文件,它会更快些。 **less** 是和上面的 **more** 命令相反的一个命令,但是它提供了额外的特性,而且对于大文件,它会更快些。
按照 more 命令相同的方式使用它: 按照 `more` 命令相同的方式使用它:
``` ```
tecmint@TecMint ~ $ dmesg | less tecmint@TecMint ~ $ dmesg | less
@ -360,13 +359,13 @@ via: http://www.tecmint.com/linux-file-operations-commands/
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/aaronkili/ [a]:http://www.tecmint.com/author/aaronkili/
[1]:http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ [1]:https://linux.cn/article-7161-1.html
[2]:http://www.tecmint.com/linux-sed-command-tips-tricks/ [2]:http://www.tecmint.com/linux-sed-command-tips-tricks/
[3]:http://www.tecmint.com/sort-command-linux/ [3]:https://linux.cn/article-5372-1.html
[4]:http://www.tecmint.com/linux-sort-command-examples/ [4]:https://linux.cn/article-5373-1.html
[5]:http://www.tecmint.com/find-and-sort-files-modification-date-and-time-in-linux/ [5]:http://www.tecmint.com/find-and-sort-files-modification-date-and-time-in-linux/
[6]:http://how%20to%20sort%20output%20of%20%E2%80%98ls%E2%80%99%20command%20by%20last%20modified%20date%20and%20time/ [6]:http://how%20to%20sort%20output%20of%20%E2%80%98ls%E2%80%99%20command%20by%20last%20modified%20date%20and%20time/
[7]:http://www.tecmint.com/category/awk-command/ [7]:https://linux.cn/article-7586-1.html
[8]:http://www.tecmint.com/12-practical-examples-of-linux-grep-command/ [8]:http://www.tecmint.com/12-practical-examples-of-linux-grep-command/
[9]:http://www.tecmint.com/linux-grep-commands-character-classes-bracket-expressions/ [9]:http://www.tecmint.com/linux-grep-commands-character-classes-bracket-expressions/
[10]:http://www.tecmint.com/difference-between-grep-egrep-and-fgrep-in-linux/ [10]:http://www.tecmint.com/difference-between-grep-egrep-and-fgrep-in-linux/