求脚本,

sh/bash/dash/ksh/zsh等Shell脚本
回复
mad_frog
帖子: 55
注册时间: 2011-06-29 11:26

求脚本,

#1

帖子 mad_frog » 2011-07-22 17:11

各位大侠好:
小弟有个问题想一下哈
有两个文件 test1.txt test2.txt
test1.txt中的内容为:
1
2
3
4
5
test2.txt中的内容为:
1
2
3
4
我想实现的结果是如果test2中的内容test1中都有(也可内容一样),则输出“ok”
如果test2中有的而test1中却没有,则输出“fail”
mad_frog
帖子: 55
注册时间: 2011-06-29 11:26

Re: 求脚本,

#2

帖子 mad_frog » 2011-07-22 17:38

补充一点,test文件的顺序不一定是有顺序的,有可能打乱了
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: 求脚本,

#3

帖子 fnan » 2011-07-22 19:05

有个细节需要知道:如果t1 为
1
2
3
t2 为
1
3
3
算不算内容一样?
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
mad_frog
帖子: 55
注册时间: 2011-06-29 11:26

Re: 求脚本,

#4

帖子 mad_frog » 2011-07-22 22:44

呵呵,没有重复的
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
联系:

Re: 求脚本,

#5

帖子 sk1418 » 2011-07-22 22:57

grep -F -v -f t2 t1
要是有输出,就是fail
没输出就ok
---
regards,

Kent
mad_frog
帖子: 55
注册时间: 2011-06-29 11:26

Re: 求脚本,

#6

帖子 mad_frog » 2011-07-22 23:27

num1=$(cat file1 | wc -l)
num2=$(sort file1 file2| uniq -d | wc -l)
if [ $num1 -le $num2 ];then
文件1是文件2的子集
else
文件1不是文件2的子集
fi
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: 求脚本,

#7

帖子 fnan » 2011-07-23 1:33

常规写法都用了,我玩玩新花样:
[ $(sort t1 t2 t1|uniq -u) ] && echo fail || echo ok
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
回复