如:有如下 2 个文件:
$ cat a.txt
1111111
2222222
3333333
7777777
9999999
$ cat b.txt
1111111
2222222
3333333
4444444
7777777
5555555
6666666
8888888
9999999
将 2 个文件的差级输出到文件 c.txt
$ cat c.txt
4444444
5555555
6666666
8888888
请问如何实现?
1
Yang2635 2022 年 8 月 10 日 via Android sort a.txt b.txt | uniq -u
|
2
yinyu 2022 年 8 月 10 日
两个都要遍历一遍,然后再对方里面 grep ,然后 wc 看看行数,如果等于零就说对方没有,就写到 c 里面,可能大佬们,有更好的办法吧。
|
3
Yang2635 2022 年 8 月 10 日 via Android
comm -13 a.txt b.txt
|
4
nuk 2022 年 8 月 10 日
可以用 comm ,但是要求输入是已经排序好的
|
5
Privileges 2022 年 8 月 10 日
grep -wvf a.txt b.txt
|
6
id4alex 2022 年 8 月 10 日 cat a.txt b.txt | sort | uniq > tmp.txt
grep -vf a.txt tmp.txt > c.txt grep -vf b.txt tmp.txt >> c.txt |
7
weiiai 2022 年 8 月 10 日 diff -a a.txt b.txt | grep ">" | sed 's/> //'
|
8
mantis OP 需要输出到一个新文件,需要完整的 shell 脚本,不是简单的命令,谢谢大家。
|
9
id4alex 2022 年 8 月 10 日
又从各位老哥这里学习到了 shell 技巧
|
11
wbd31 2022 年 8 月 10 日
diff a.txt b.txt | awk '{if($0~/^[<>]/)print substr($0, 3)}'
|
12
PMR 2022 年 8 月 10 日 via Android
这问题前几天有人问过
另 shell 脚本不就是塞命令进去? 还能编译个二进制不成? |
15
codingBug 2022 年 8 月 11 日
善用[搜索引擎]( https://unix.stackexchange.com/questions/428419/how-to-write-the-difference-between-two-files-into-a-file)
不知道是不是你要的效果 `diff a.txt b.txt|grep ">"| cut -c 3- > c.txt` |
16
MilkShake 2022 年 8 月 11 日
上面各个大佬都已经给完整的命令,脚本就是有各种命令组成的,你自己粘贴进去就可以用了。
|
17
masker 2022 年 8 月 11 日 via Android 伸手党的胜利:大佬已经给出了答案,还嫌大佬不够手把手教
|
18
qooweds 2022 年 8 月 11 日
又到了学习 shell 花式技巧的时间啦,期待更多新命令
|
19
knightdf 2022 年 8 月 11 日
comm -3 <(sort a.txt) <(sort b.txt)
|
20
cwcc 2022 年 8 月 11 日
借个楼问下,如果是那种.patch 的文件,怎么应用到文件上呢?还有.patch 文件是怎么来的
|
21
itechify PRO 请善用搜索引擎,端饭人前还嚷嚷要喂吗?
|
24
try4times 2022 年 8 月 11 日
某公司在赛码上的笔试题?
|
25
bmsac0001 2022 年 8 月 11 日 via Android
为什么不用 diff
|
26
maxbon 2022 年 8 月 11 日
先排序再用 diff 呀
|
27
Acoolda 2022 年 8 月 11 日
我推荐大家每日一问,大佬收获指导众生的满足感,我们收获知识。两全其美.
|