悠家娱乐|Linux 上的文件 | Linux 中国,合并和排序
文章图片
在本文中 , 我们将查看一些用于排序和合并文件内容的命令 , 并重点介绍结果有何不同 。
?来源:linux.cn?作者:SandraHenry-stocker?译者:geekpi?
(本文字数:3218 , 阅读时长大约:4分钟)
在Linux上合并和排序文本的方法有很多种 , 但如何去处理它取决于你试图做什么:你是只想将多个文件的内容放入一个文件中 , 还是以某种方式组织它 , 让它更易于使用 。 在本文中 , 我们将查看一些用于排序和合并文件内容的命令 , 并重点介绍结果有何不同 。
使用cat
如果你只想将一组文件放到单个文件中 , 那么cat命令是一个容易的选择 。 你所要做的就是输入cat , 然后按你希望它们在合并文件中的顺序在命令行中列出这些文件 。 将命令的输出重定向到要创建的文件 。 如果指定名称的文件已经存在 , 那么文件将被覆盖 。 例如:
$catfirstfilesecondfilethirdfile>newfile
如果要将一系列文件的内容添加到现有文件中 , 而不是覆盖它 , 只需将>变成>> 。
$catfirstfilesecondfilethirdfile>>updated_file
如果你要合并的文件遵循一些方便的命名约定 , 那么任务可能更简单 。 如果可以使用正则表达式指定所有文件名 , 那就不必列出所有文件 。 例如 , 如果文件全部以file结束 , 如上所示 , 你可以进行如下操作:
$cat*file>allfiles
请注意 , 上面的命令将按字母数字顺序添加文件内容 。 在Linux上 , 一个名为filea的文件将排在名为fileA的文件的前面 , 但会在file7的后面 。 毕竟 , 当我们处理字母数字序列时 , 我们不仅需要考虑ABCDE , 还需要考虑0123456789aAbBcCdDeE 。 你可以使用ls*file这样的命令来查看合并文件之前文件的顺序 。
注意:首先确保你的命令包含合并文件中所需的所有文件 , 而不是其他文件 , 尤其是你使用*等通配符时 。 不要忘记 , 用于合并的文件仍将单独存在 , 在确认合并后 , 你可能想要删除这些文件 。
按时间期限合并文件
如果要基于每个文件的时间期限而不是文件名来合并文件 , 请使用以下命令:
$forfilein`ls-trmyfile.*`;docat$file>>BigFile.$$;done
使用-tr选项(t=时间 , r=反向)将产生按照最早的在最前排列的文件列表 。 例如 , 如果你要保留某些活动的日志 , 并且希望按活动执行的顺序添加内容 , 则这非常有用 。
上面命令中的$$表示运行命令时的进程ID 。 不是很必要使用此功能 , 但它几乎不可能会无意添加到现有的文件 , 而不是创建新文件 。 如果使用$$ , 那么生成的文件可能如下所示:
$ls-lBigFile.*-rw-rw-r--1justmejustme931725Aug612:36BigFile.582914
合并和排序文件
Linux提供了一些有趣的方式来对合并之前或之后的文件内容进行排序 。
按字母对内容进行排序
如果要对合并的文件内容进行排序 , 那么可以使用以下命令对整体内容进行排序:
$catmyfile.1myfile.2myfile.3|sort>newfile
如果要按文件对内容进行分组 , 请使用以下命令对每个文件进行排序 , 然后再将它添加到新文件中:
$forfilein`lsmyfile.?`;dosort$file>>newfile;done
对文件进行数字排序
要对文件内容进行数字排序 , 请在sort中使用-n选项 。 仅当文件中的行以数字开头时 , 此选项才有用 。 请记住 , 按照默认顺序 , 02将小于1 。 当你要确保行以数字排序时 , 请使用-n选项 。
$catmyfile.1myfile.2myfile.3|sort-n>xyz
如果文件中的行以2020-11-03或2020/11/03(年月日格式)这样的日期格式开头 , -n选项还能让你按日期对内容进行排序 。 其他格式的日期排序将非常棘手 , 并且将需要更复杂的命令 。
- 忧家娱乐|前辈价格暴跌惹众哄抢,华为mate40用顶级旗舰芯片
- 忧家娱乐|前辈跌至白菜价真服了,华为Mate40系列宣传海报曝光
- 忧家娱乐|前辈处境很尴尬价格骤降,华为Mate40依旧采用双挖孔瀑布
- 忧家娱乐|Pro的前摄挖孔,前辈价格底线持续下降,华为Mate40
- 忧家娱乐|不废话!苹果或于9月8日直接上架新苹果手表6、新iPad
- 娱乐一手消息|任嘉伦才参加两期,为何人气就比邓伦高了,《极限挑战宝藏行》
- 小文杰看娱乐|下场却很惨烈,死的一个比一个惨,悲哉!,梁山好汉个个英勇善战
- 搞机特工|学习办公、娱乐三不误,适合所有人的2019款iPad
- 呱呱娱乐家|花7亿有5层楼高,美国:算你们厉害,中国又造出一“巨无霸”
- 娱乐中的趣闻|90后,哪款游戏适合我?,想玩游戏又玩不动的