独立排序文件夹中的所有文件,每个文件都有一个输出文件

Hashim Aziz |

我有几个文件夹,其中包含许多文本文件,范围从数十到100s。这些文本文件是包含数百万行的简单数据库,每行包含一个记录。但是,它们中的记录是未排序的,并且包含许多重复项。我想分别对它们进行排序和重复数据删除(即彼此独立),但是据我所知,sort只能生成所有输入文件的串联输出-也就是说,即使给出多个文件,它也只会产生一个包含所有这些文件的合并结果的输出文件。

如何对当前文件夹中的所有文件进行排序以为每个文件夹生成单独排序的输出文件我还希望将输出文件输出到当前目录中的子文件夹。一个for循环是显而易见的解决方案给我,但我要问这里的情况下,有一些简单的方法以做到这一点sort,我还没有碰到过或漏诊。我的bash知识也很缺乏,所以如果for循环最简单的解决方案,我希望有人提供最好的解决方案,而不是我花很多时间一起破解某些东西,而这仍然达不到我想要做的事情。

卡米尔·马乔洛夫斯基(Kamil Maciorowski)

是的,您可以使用完成此操作for即使有“一些简单的方法可以做到这一点sort”(但我不这么认为),这也很简单:

# cd to the directory you want to process

mkdir sorted    
for file in *; 
do
   printf 'Processing %s\n' "$file"
   [ -f "$file" ] && sort -u "$file" > "./sorted/$file"
done

笔记:

  • for file in * 不处理子目录中的文件。
  • printf仅用于报告进度。实际上,它应该放在后面[ ... ](见下文),但是我不想使代码过于复杂。printf如果您希望整个过程保持沉默,则可以删除该行。
  • [ -f "$file" ]检查是否$file为常规文件。对于最通用的模式(即*),我们至少需要这种情况,以避免sortsorted目录作为参数运行(这将引发错误,无害但不优雅)。如果使用更具体的glob (例如*.txt*.db而不是)*(例如,跳过desktop.ini不应处理的杂散文件),则很有可能不需要此测试在这种情况下,您可以省略[ ... ] &&并以该行开始sort(尽管保持该行完好无损)。
  • sort 支持各种选项,您可能需要使用其中一些选项,具体取决于您需要的排序方式。

  • sort -u在对条目进行排序后立即对它们进行重复数据删除,并且在已经使用时,这sort是使用该uniq命令的一种较不冗余的选择

如果您需要根据比简单的glob更复杂的条件来选择文件,find那么开始可能会更好。对于您当前的任务for应该没问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

输出文件内容,每个文件之间都有一个额外的换行符

在每个子文件夹中批量创建一个文件夹并移动其中的所有 .jpg 文件

从一个文件夹中复制所有文件和文件夹

将文件从一个文件夹复制到另一个文件夹,但每个文件之间都有间隔

Python:将相同的.csv文件从各个文件夹(每个文件夹都有一个.csv文件)复制到一个文件夹中

如何从所有子文件夹中取出文件并将其移至第一个文件夹

如何使用makefile独立编译和更新一个文件夹中的所有文件

将所有文件夹和子文件夹中的每个文件压缩为一个单独的zip文件

文件夹中除一个命名文件夹外的所有文件夹的glob

如何将所有文件(文件夹中每个子文件夹中的最新文件除外)压缩到每个子文件夹一个ZIP文件中?

Inno-setup将所有文件打包到一个文件夹中,每个文件只有1个文件

匹配文件夹内的所有文件并忽略其中的一个文件夹

在每个子文件夹中创建一个带有特定名称的空文件的文件夹

如何读取,转换和输出文件夹中的所有文件?

Powershell - 列出目录中的所有文件夹,在每个文件夹中提取最新的 .bak 文件,压缩它,将其复制到一个目录

Python为一个文件夹中的所有文件夹创建多个zip文件

如何删除Android上一个文件夹中的所有文件和文件夹

在给定文件夹的所有子文件夹中递归创建一个php文件

列出文件夹中的所有文件以及子文件夹

列出文件夹中的所有文件ID(无子文件夹)

使用Pandas将每个文件夹的所有csv文件合并为一个大csv文件

是否可以在JSF中包含一个文件夹中的所有javascripts文件?

读取特定文件夹中的所有txt文件,并将所有内容写入一个txt文件

如何用一个文件替换一个文件夹中的所有文件?

创建一个独立的html页面,该页面显示文件夹中所有文件的内容

合并一个文件夹中的所有pdf文件

JGit:我想在一个特定的分支中的所有文件和文件夹

将所有文件包含在一个捆绑包的文件夹中

为什么所有CSS文件都放在一个文件夹中?