归类和排序Linux上的文件
如果你只想将一组文件放到单个文件中,那么 cat 命令是一个容易的选择。你所要做的就是输入 cat,然后按你希望它们在合并文件中的顺序在命令行中列出这些文件。将命令的输出重定向到要创建的文件。如果指定名称的文件已经存在,那么文件将被覆盖。例如: $ cat firstfile secondfile thirdfile > newfile 如果要将一系列文件的内容添加到现有文件中,而不是覆盖它,只需将 > 变成 >>。 $ cat firstfile secondfile thirdfile >> updated_file 如果你要合并的文件遵循一些方便的命名约定,那么任务可能更简单。如果可以使用正则表达式指定所有文件名,那就不必列出所有文件。例如,如果文件全部以 file 结束,如上所示,你可以进行如下操作: $ cat*file> allfiles 请注意,上面的命令将按字母数字顺序添加文件内容。在 Linux 上,一个名为 filea 的文件将排在名为 fileA 的文件的前面,但会在 file7 的后面。毕竟,当我们处理字母数字序列时,我们不仅需要考虑 ABCDE,还需要考虑 0123456789aAbBcCdDeE。你可以使用 ls *file 这样的命令来查看合并文件之前文件的顺序。 注意:首先确保你的命令包含合并文件中所需的所有文件,而不是其他文件,尤其是你使用 * 等通配符时。不要忘记,用于合并的文件仍将单独存在,在确认合并后,你可能想要删除这些文件。 按时间期限合并文件如果要基于每个文件的时间期限而不是文件名来合并文件,请使用以下命令: $ forfilein`ls -tr myfile.*`;docat $file >>BigFile.$$;done 使用 -tr 选项(t = 时间,r = 反向)将产生按照最早的在最前排列的文件列表。例如,如果你要保留某些活动的日志,并且希望按活动执行的顺序添加内容,则这非常有用。 上面命令中的 $$ 表示运行命令时的进程 ID。不是很必要使用此功能,但它几乎不可能会无意添加到现有的文件,而不是创建新文件。如果使用 $$,那么生成的文件可能如下所示: $ ls-l BigFile.* -rw-rw-r--1 justme justme 931725Aug612:36BigFile.582914 合并和排序文件Linux 提供了一些有趣的方式来对合并之前或之后的文件内容进行排序。 按字母对内容进行排序如果要对合并的文件内容进行排序,那么可以使用以下命令对整体内容进行排序: $ cat myfile.1 myfile.2 myfile.3|sort> newfile 如果要按文件对内容进行分组,请使用以下命令对每个文件进行排序,然后再将它添加到新文件中: $ forfilein`ls myfile.?`;dosort $file >> newfile;done (编辑:沧州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |