您的位置:技术中心首页 > 工具学习 >> cat用法

cat用法

作者:未知   时间:2006-09-06 19:36:47  来自:myvilla的专栏  浏览次数:104  文字大小:【】【】【
.您常常需要将几个文件处理成一个文件并将这种处理的结果保存到一个单独的输出文件。
cat (“concatenate”的缩写)命令在其输入上接受一个或多个文件并将它们作为一个单独的文件打印到它的输
出。例如, cat chapter01 chapter02 chapter03 > book 将三个 chapterXX 文件保存在一个单独的 book 文件
中。

输入文件按照它们在 cat 命令后的排列顺序被打印,因此,要调换信息的顺序,就必须先调换输入文件的顺序。
此外,当需要处理的文件数目对于您来说过大而无法手工输入这些文件的名称时,您可以使用通配符,
如在 cat chapter* > book 中使用的那样,记住,文件名将会按升序排列。当您突然发现 chapter13 被发送到输
出中时会在 chapter2 之前,而会在 chapter02 之后时,这会引起很有意思的问题。

当 cat 的输出没有被重定向到一个文件或另一个命令的标准输出时, cat 表现出来的行为与多数命令行工具一
样,即将其输出发送到控制台。这意味着您可以使用 cat 来显示文件;例如,您可以使用 cat /etc/passwd 来显
示系统密码文件的内容。为方便起见,您应该用 less 查看大文件,如在 less /etc/passwd 中那样

2. 尽管 cat 主要用于合并文件,您还可以将它用于输入的简单自动处理。例如,您可以使用一个单独的空白行来
除去多行空白行(使用 -s 选项),这是一个在您将源代码公诸于世前进行清除工作的好办法。遗憾的是, cat
 并没有用于一次清除所有空白行的选项。但这并不是什么大问题,因为您可以使用方便的 sed 命令将这些空白
行除去:
$ cat -s /etc/X11/XF86Config | sed '/^[[:space:]]*$/d'

3. cat 的另外一个重要的功能是它可以对行进行编号。对行进行编号功能有两个选项:
    -b 选项(只能对非空白行进行编号)
    -n 选项(可以对所有行进行编号):
            $ cat -b /etc/X11/XF86Config
 
4.UUOC
摘自Shell FAQ:
   UUOC   
      This is short for "Useless use of cat". It's used to point out  that some example script has used cat when
 it could have used  redirection instead. It's more efficient to redirect input than  it is to spawn a process to
 run cat. For example     
        $ cat file | tr -d 'xyz'
      runs two processes, one for cat and one for tr. This is less efficient than
        $ tr -d 'xyz' < file
      In general, "cat file | somecommand" can be more efficiently replaced by "somecommand < file"  or
 (especially for multi-file input) 

        $ somecommand file [file ...]
      but check the man page for "somecommand" to find out if it will
      accept this syntax.

      For more details about this, as well as other things like it, see
      http://rhols66.adsl.netsonic.fi/era/unix/award.html

UUOC是"Useless use of cat"的缩写。如果脚本中使用cat命令的代码可以用"重定向"代替,你就可以称其为
UUOC。因为重定向的效率要比运行一个外部命令要高。比如:
        $ cat file | tr -d 'xyz'
      同时运行了两个进程 cat 和 tr,这种用法的效率比下面这句要低
        $ tr -d 'xyz' < file
     通常,"cat file | somecommand"可以替换成"somecommand < file"
     如果somecommand接受文件名作为参数,也可以    
 
5. 要将一个文件附加到另一个文件末尾,请输入:
        cat section1.4 >> section1
     >>(两个脱字符)将 section1.4 的副本附加至 section1 的末尾。如果要替代该文件,请使用 >(脱字符)。

6.  要将文本添加到文件的末尾,请输入:
        cat >>notes Get milk on the way home
        Ctrl-D
    此命令将 Get milk on the way home 添加至名为 notes 的文件末尾。cat 命令不会提示;它会等待您输入文本。按 Ctrl-D 键顺序来表示您已完成输入。

7.要将几个文件与从键盘输入的文本并置,请输入:
        cat section3.1 - section3.3 >section3
    该命令并置具有来自键盘的文本(由减号表示)的文件 section3.1、和文件 section3.3,然后将输出定向到名为 section3 的文件。
责任编辑:5life

更多相关 cat linux 的文章

Linux 文件和目录的属性 [2006-09-08]
Linux 引导过程内幕 [2006-09-06]
LINUX系统目录详解 [2006-09-06]
打造完美Linux操作系统:实用小窍门 [2006-09-06]
Linux下Makefile的automake生成全攻略 [2006-09-06]
Linux下C开发工具介绍 [2006-09-06]
Linux下的压缩文件剖析 [2006-09-06]
Linux文件查找命令find,xargs详述 [2006-09-06]
Linux静态/动态链接库的创建和使用 [2006-09-06]
一些linux应用小技巧,网络相关,系统管理,shell,程序使用 [2006-08-04]
本文共有0条评论,现在显示最新的5条。

栏目导航

电路基础
硬件语言
逻辑验证
电路综合
后端设计
可测设计
基本逻辑
制造工艺
书籍精选
说文解字
工具学习
数字滤波
趣闻逸事
数字锁相
设计杂项
低耗设计

站点最新

更多相关链接

  GNU make v3.80完整版中...
  Linux 文件和目录的属性
  Vim 实用技术 -- 第三部...
  Vim 实用技术 -- 第二部...
  Vimdiff 使用
  Linux 引导过程内幕
  Vim 实用技术 -- 第一部...
  史上最强的Vim 配置文件...
  LINUX系统目录详解
  打造完美Linux操作系统:...

栏目最新

更多相关链接

  GNU make v3.80完整版中...
  Linux 文件和目录的属性
  Vim 实用技术 -- 第三部...
  Vim 实用技术 -- 第二部...
  Vimdiff 使用
  Linux 引导过程内幕
  Vim 实用技术 -- 第一部...
  史上最强的Vim 配置文件...
  LINUX系统目录详解
  打造完美Linux操作系统:...

热点文章

更多相关链接