电脑技术学习

对话 UNIX,第 13 部分: 另外十种命令行组合

dn001

  有两种方法可以逆序显示文件中的行:tac(将 cat 反过来)和 tail -r 命令。

$ cat smallfile
a
b
c
$ tac smallfile
c
b
a
$ tail -r smallfile
c
b
a

  您可能会发现 tac 更加实用一些,因为它将显示整个文件,这与 tail 是不同的,后者将对输出进行截断,只显示若干行的内容。例如,您可以组合使用 tac 和 less 以创建一个别名,用于对文件进行逆序分页:

$ alias rless="LESSOPEN='|tac %s' less"
$ rless smallfile
c
b
a

  rless 别名临时地将 LESSOPEN 设置为 |tac %s,这是特定于 less 的一个环境变量。这样可以强制使用 tac 对每个文件(%s 是文件名的占位符)进行预处理(所以使用了管道 |)。

  下面提供了这个相同技巧的另一种变体,但是它使用了 perl 而不是 tac,在您的系统中可能无法使用这个命令:

LESSOPEN="|perl -e 'print reverse (<>)' %s" less small

  包含 perl 的那行命令表示“将所有的输入行读入一个匿名数组 ((<>)),颠倒元素的顺序,并打印这个新的数组。

  进行新的数学运算

  如果您需要计算一个结果,那么并不需要转到一个新的应用程序。您可以继续在命令行中完成这项任务。您可以使用 dc(这是一种逆波兰式计算器),或者 bc(这是一种用于数学运算的完整的脚本编程语言)。或者,如果您需要马上获得答案,那么可以使用命令行和 $(( )) 操作符。

$ echo $(( 100 / 10 ))
10
$ echo $(( 10 ** 2 ))
100

  Shell 并没有提供大量的算术操作符,但是已经足以完成大多数编程任务,包括移位、求余和比较。

  还有很多的内容需要学习

  “对话 Unix已经是第 13 部分了,但是仍然有许多内容需要介绍。我们需要学习更多的命令和技巧、研究各种各样的相关概念,当然还包括大量的开放源代码软件,以便提高您的工作效率。

  还有一点就是,必须克服各种困难。高年级学生有时会捉弄人,有时的确令人尴尬,但他们相处融洽。也许我看起来像是在倚老卖老了!. . 孩子们相处很融洽,是吧!

  感谢您的阅读!我希望您能够喜欢本专栏。

标签: