linux - 连接不同目录中同名文件的更快方法
问题描述
我正在尝试完全按照这篇文章中的方式做,并使用了公认的答案。我的问题是,有没有更快的选择?这实际上已经运行了几个小时,并且仍在创建新的空文件。我有数百个文件要连接。谢谢!
这是代码:
find . -type f -path "*/*/*/*/$name"
-exec cat {} + >"New_Dir/$name"
done < list_to_concat.txt
我读过类似的帖子,说循环可能更快,但无法使其正常工作。我在这里用回声测试:
for i in */*/*/*/*.txt;
do echo find -name $i -exec bash -c cat $i >>
"New_Dir/$i"; done
解决方案
如果这对有一天搜索的其他人有用,我学会了一种使用 xargs 和 ls 更快的方法:
while read -r name
do
ls */*/*/*/$name.txt | xargs cat > $name.combine
done <List_to_combine.txt
推荐阅读
- arrays - 基于对象键组合对象键值对
- architecture - 规模/架构挑战
- r - ggplot2::facet_wrap() 的默认面板布局?
- c# - Web api C# POST
- c++ - 获取嵌套类 STL 容器中的元素总数
- c# - 将 DataGridView 中的单元格转换为组合框并返回:这是好的代码吗?
- php - MySql LEFT JOIN 在 PHP 页面中首先返回错误,但在 MYSQL 命令行中返回正确结果
- excel - 我在一个单元格中有一个时间,想要减去 2 小时并将时间添加 2 小时并在 excel 中显示
- spring - 为什么 Spring Boot 应用程序 pom 需要 spring-boot-starter-parent 和 spring-boot-starter-web?
- r - 如何使用 dplyr 计算与 rowmean 的比率