从一个列表打印数字,在另一个列表中找不到

时间:2014-04-06 10:01:13

标签: bash shell

我的第一个清单包含:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ....

列表x包含:

5 10 15 20 ...

我想打印第一个列表中列表x中没有的任何数字,即:

1 2 3 4 6 7 8 9 11 12 13 14 16 17 18 19 .....

#!/bin/bash  
for i in $(seq 0  5 100)
do
echo $i
done

我想打印号码不包含#for i in $(seq 0 5 100)

2 个答案:

答案 0 :(得分:1)

你可以这样做:

seq 100 | egrep -v "0$|5$"

基本上它会查找并删除(-v)任何以0或5结尾的行。

答案 1 :(得分:0)

目前尚不清楚你是否有实际的名单,或只是想要生成一个不包含5的倍数的列表。如果它是后者,只需要做类似的事情

#!/bin/bash
for i in {0..100}; do
  (( $i % 5 != 0 )) && echo "$i"
done      

%等同于mod