如何输出第二列相同的行,输出第二列


文本格式如下,以“|”作为分隔符

10999201508261233197418182901054|63a96a66ba024913aa1c0d377cf95fb4||20150826|aa
10999201508261233197418182901054|63a96a66ba024913aa1c0d377cf95fb3||20150826|bb

如何输出第二列相同的行,即如果第二列的值已存在,则输出该行的值。

脚本如下:

#!/bin/bash
i=0
a[0]=""
while read line
do
   newline=`echo $line |cut -d"|" -f2`
   for(( j=0;j<=$i;j++ ))
   do
      if [ "${a[$j]}" = "$newline" ];then
          echo $line
      fi
   done
   if [ $[$i+1] -eq $j ];then
      i=$[$i+1]
      a[$i]=$newline
   fi
done < 1.txt

关键是数组的运用

相关内容