题目:shell
有一文档中有以下内容,写一个shell脚本实现去重,逆序也算重复。例如a b c 和 c b abash
a b cide
d e f文档
a d c d e fit
c bclass
c b aawk
x y zsed
x y zfile
a b循环
z y x
z x
x y
a d c d
a b c
a b c
a
b
c
思路:打个比方
好比有一个箱子里面装着
2 个红球
2 个绿球
2 个蓝球
cc 文件有多少行就循环多少次
第一个循环
如今要去重,这时候咱们能够从里面随机的拿出一个球到另外一个**空的箱子(刚开始是空的);至关于脚本中的flag=`cat file | grep -E "$i|$a"`这行。
当你放入后这里面已经有一个球了,至关于 echo $i >> file ,并把这个球给展现出来 ,至关于 echo $line
第二次循环
有两种状况
1 是红球
2 不是红球
若是说是红球,第一次取出一个红球,此次又取出一个红球,重复了,直接丢掉,不将它放入另外一个箱子。
若是说不是红球,第一次取出一个红球,此次取出不是一个红球,不与箱子中的球重复,把它放入另外一个箱子。
[root@localhost shell]# cat cc.sh #!/bin/bash [ ! -f file ]&&touch file while read line do i=`echo $line|sed 's/ //g'` a=`echo $i|rev` flag=`cat file |awk '{if($0=="'$i'"||$0=="'$a'")print "ok"}'` if [[ "$flag" != "ok" ]];then echo $line echo $i >> file fi done< cc rm file