【问题标题】:How to iterate through an array and output certain words in a bash script?如何遍历数组并在 bash 脚本中输出某些单词?
【发布时间】:2020-07-13 13:23:03
【问题描述】:

我正在编写一个基本的 bash 脚本来遍历一个数组,并且我必须输出以字母 't' 和 'm' 开头的单词。我使用 grep 获取以某些字母开头的单词,但我无法输出多个字母。如何使用 grep 搜索多个起始字母?还是有更好的方法来解决这个问题?

 #!/bin/bash
Unix=( "car" "hello" "tony" "mustard" );
echo ${Unix[@]}

echo "Here are the words starting with t + m: "
for i in ${Unix[@]}
do
    echo $i | grep '^\t'
done

【问题讨论】:

标签: arrays bash grep


【解决方案1】:

我建议:

grep -e '^t' -e'^m'

grep -E '^(m|t)'

见:man grep

【讨论】:

  • @MiSully 如果解决了您的问题,请考虑通过单击旁边的绿色标记来接受答案
  • 我建议将echo $i | grep ... 替换为if [[ "$i" =~ ^(m|t) ]]; then echo "$i"; fi。这不需要外部程序 (grep) 也不需要管道(两个新进程)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-05
  • 2016-02-08
  • 2021-08-11
  • 1970-01-01
  • 2022-01-15
  • 2011-05-11
  • 1970-01-01
相关资源
最近更新 更多