Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在bash中根据条件缩短数组_Arrays_Bash - Fatal编程技术网

Arrays 如何在bash中根据条件缩短数组

Arrays 如何在bash中根据条件缩短数组,arrays,bash,Arrays,Bash,我是一名新的bash学习者。我在bash中有一个数组,从标准输入中获取输入。我必须根据一些逻辑来缩短数组。比如说,数组中有以下元素: Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway 现在,我必须缩短数组,只有接受的元素才能保留在数组中。如果数组的一个元素不包含字母a(区分大小写),并且包含字母i(不区分大小写),则该元素将被视为已接受。对于上述清单,答案是: Niger

我是一名新的
bash
学习者。我在
bash
中有一个数组,从标准输入中获取输入。我必须根据一些逻辑来缩短数组。比如说,数组中有以下元素:

Namibia
Nauru
Nepal
Netherlands
NewZealand
Nicaragua
Niger
Nigeria
NorthKorea
Norway
现在,我必须缩短数组,只有
接受的
元素才能保留在数组中。如果数组的一个元素不包含字母
a
(区分大小写),并且包含字母
i
(不区分大小写),则该元素将被视为
已接受。对于上述清单,答案是:

Niger
如何在bash中实现它

请注意,我可以打印数组,而不需要以下条件。但我想有个条件

countries=()
while read -r country; do
    countries+=( "$country" )
done
# here i have to do something to shrink/shorten the array on the basis of some logic. In this case, elements of countries should have at least one character 'a' and should not contain 'i' / 'I'.
echo "${countries[@]}"

如果要在构造数组时筛选列表,应执行以下操作:

countries=()
while read -r country; do
    country=$(echo "$country" | grep -vi a | grep i)
    if [ -n "$country" ]; then
        countries+=( "$country" )
    fi
done
printf '%s\n' "${countries[@]}"

那有什么问题?你试了什么?你被困在什么地方了吗?我想让
bash
代码来解决这个问题@阿尔伯托萨卡诊断不会发生。Stackoverflow不是一个让别人做你工作的网站,你需要展示你为解决这个问题所做的努力。一旦你这样做了,我相信你会找到愿意帮助你的人。我已经编辑了我的问题。我做了一些工作,如果有条件的话,我一直在研究如何打印或制作一个新的数组。请注意,这不是任何专业的工作或东西。我是一名新的bash学习者,也是一名学生。学习bash是我的好奇心,它甚至不是我学术的一部分。谢谢@AlbertoZaccagniI认为您可以不用编写脚本,而是使用已经提供给您的工具,如grep:
echo$countries | grep i | grep-va
。当然,这是更好的方法,但这是一种。您是否有禁止使用诸如
grep
等工具的要求?