首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Unix合并目录和整理重复的文件行?

Unix合并目录和整理重复的文件行?
EN

Stack Overflow用户
提问于 2015-11-27 02:28:33
回答 1查看 68关注 0票数 1

我是Unix和Bash的新手,我可以在命令中使用一些帮助,该命令将大量相同的目录与数百个文本文件合并。目录中的所有文件名都是相同的,但不是每个文本文件中的所有行。

目标是合并目录,将每个文件的更新副本与合并的内容合并,并删除重复的行。

下面是一个非常基本的目录和预期输出示例:

代码语言:javascript
运行
复制
Directory A-1
   1.txt
   2.txt
   3.txt

Directory A-2
   1.txt
   2.txt
   3.txt

End Result - Directory A
   1.txt
   2.txt
   3.txt

下面是我正在处理的生成语法错误的命令行:

代码语言:javascript
运行
复制
for each $file in A-1, cat A-1/$file A-2/$file |sort|uniq > A/$file 

如果有人能为我提供适当的命令语法,它将合并目录并从每个单独的文件中删除所有重复行,我们将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-27 02:35:54

代码语言:javascript
运行
复制
for f in A-1/*; do 
   bn="$(basename "$f")"
   sort -u "$f" "A-2/$bn" > "A/$bn"
done

这假设A-1中的每个文件都有相同名称的A-2中的相应文件。它合并两个对应文件的内容,对它们进行排序,删除重复文件,并将输出保存在必须存在的A/中。

例如,假设您从以下内容开始:

代码语言:javascript
运行
复制
mkdir -p A-1 A-2 A
(
echo a 
echo b 
echo c 
) > A-1/a
(
echo b 
echo c 
echo d
) > A-2/a

运行上面的for循环将为您提供一个A/a

代码语言:javascript
运行
复制
a
b
c
d
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33949481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档