我学会了here关于搜索和使用数组替换数组。
就是这样。
declare -a Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora');
echo ${Unix[@]/Red*/}
# Output will be
Debian Ubuntu Suse Fedora
在上面的代码段中,使用标记a
进行不区分大小写的搜索。即我想搜索“红色”而不是“红色”。
答案 0 :(得分:3)
只需将r
和R
放入角色类[]
。
$ declare -a Unix=('Debian' 'red hat' 'Ubuntu' 'Suse' 'Fedora');
$ echo ${Unix[@]/[rR]ed*/}
Debian Ubuntu Suse Fedora
答案 1 :(得分:1)
您可以在此处使用printf
和grep -i
:
printf "%s\n" "${Unix[@]}" | grep -iv Red
Debian
Ubuntu
Suse
Fedora
printf "%s\n" "${Unix[@]}" | grep -iv red
Debian
Ubuntu
Suse
Fedora
更新:要获得单行输出:
printf "%s\n" "${Unix[@]}" | grep -iv red | tr '\n' ' '; echo
Debian Ubuntu Suse Fedora