Arrays 从数组中删除某些字符串

Arrays 从数组中删除某些字符串,arrays,bash,Arrays,Bash,下午好 如果项目列表符合我的程序中的条件,我在计算如何从数组中删除项目列表时遇到了一些问题。下面是一个例子。我想删除其中包含admin的任何内容,无论大小写,以及名称列表中的任何内容 #This array is a list of user name declare -a userList=($(command to get users)) #now my userList array is filled with different usernames #ex = user01 user0

下午好

如果项目列表符合我的程序中的条件,我在计算如何从数组中删除项目列表时遇到了一些问题。下面是一个例子。我想删除其中包含admin的任何内容,无论大小写,以及名称列表中的任何内容

#This array is a list of user name
declare -a userList=($(command to get users))

#now my userList array is filled with different usernames
#ex = user01 user02 user03 admin user04 Admin_user AdMiN-account user09
#I have a second list of names that I want to remove from the array stored in a variable. Pseudocode is below. test.txt contains **user01 and user02**

for i in ${exclude} ; do
remove name from array
done
code to remove any spelling of admin from userList array.

如果需要更长的解释,请让我知道。谢谢。

假设数组元素中没有换行符,可以使用
grep
删除数组项的大小写忽略:

arr=(user01 user02 user03 admin user04 Admin_user AdMiN-account user09)

sarr=($(grep -iv 'admin' <(printf "%s\n" "${arr[@]}")))

是的,我已经看过了。没有解释如何忽略大小写,并说明如何删除单个项(如pref),而不是从另一个数组或文件中删除所有项…您是否查看了答案?比如,这个:使用GNUBash4:
declare-l-a array=(ABC DEF GHI);声明-p数组
帮助声明
是的,我做了。他的回答是,他展示了如何从数组中移除函数的内部。我试着按照他的思路去实现一些东西,但在我的情况下无法实现。非常感谢,我甚至没有想到像格雷普这样简单的事情。关于删除管理员的完美答案。非常感谢。
declare -p sarr
declare -a sarr='([0]="user01" [1]="user02" [2]="user03" [3]="user04" [4]="user09")'