5.4 拼接文件,并给文件加上行号

cat -n file1 file2

写诗和写源代码一样,加上行号会非常好,可以使引用更明确。如果使用cat命令时想生成行号,可以增加-n选项(或--number)。

  1. $ cat -n housman_-_rue.txt quarles_-_the_world.txt
  2. 1 WITH rue my heart is laden
  3. 2 For golden friends I had,
  4. 3 For many a rose-lipt maiden
  5. 4 And many a lightfoot lad.
  6. 5 By brooks too broad for leaping
  7. 6 The lightfoot boys are laid;
  8. 7 The rose-lipt girls are sleeping
  9. 8 In fields where roses fade.
  10. 9 The world's an Inn; and I her guest.
  11. 10 I eat; I drink; I take my rest.
  12. 11 My hostess, nature, does deny me
  13. 12 Nothing, wherewith she can supply me;
  14. 13 Where, having stayed a while, I pay
  15. 14 Her lavish bills, and go my way.

行号非常有用,cat命令提供了一种快捷的方法,可以在文件中加入行号。

说明 比cat命令更好的命令是dog命令(更多信息可以访问http://opensource.weblogsinc.com/2005/02/17/why-dogs-are-betters-than-cats)。除了本地文件,还可以用dog命令在stdout上查看网页HTML源代码,以及指定网页上的一系列图片或链接。dog命令能够把所有字符转换成小写字符,反之亦然;能够将行结束符转换成Mac OS、DOS、或者Unix系统中使用的符号;甚至能够指定要输出的字符的范围(例如,5~25行)。dog命令的man page也是非常有趣的东西,这更不必说了。这真是一只懂得很多窍门的小狗。

cat命令相对应,还创建了另外一个程序:tac。它的名称中的字母顺序正好与cat相反。tac的功能是:反向拼接文件①。它并不是你随时都需要使用的东西,不过现在先知道实现这个功能原来这么容易,在你需要它时就好办了。

cat是从第一行显示到最后一行,而tac则是从最后一行显示到第一行。——译者注