在Shell脚本中使用空行空间拆分文件并存储在数组中

莫格利

我试图用空行分割myfile.txt作为分隔符,并将每个值存储在数组中。

fruit=mango, lime, orange,grape

car=nissan,
ford,
toyota,
honda

country=russia, england, ireland,
usa,
mexico,australia

colors=green, orange, purple, white,
yellow

我写了以下脚本

while IFS='\n' read -r line || [[ -n "$line" ]]; do
    if [[ $line != "" ]]; then
        arr+=("$line")
        echo "File Content : $line"
    fi
done < myfile.txt

我遇到的问题是针对这样的国家

File Content : country=russia, england, ireland
File Content : usa,
File Content : mexico,australia

我希望将其打印为

File Content : country=russia, england, ireland, usa,mexico,australia

有人可以帮我调整我的脚本吗?

提前致谢

查尔斯·达菲
declare -A content=( )                    # create an empty associative array, "content"
curr_key=                                 # and a blank "key" variable

while read -r line; do
  [[ $line ]] || { curr_key=; continue; } # on a blank input line, reset the key
  if [[ $line = *=* ]]; then              # if we have an equal sign...
    curr_key=${line%%=*}                  # ...then use what's left of it as the key
    content[$curr_key]=${line#*=}         # ...and what's right of it as initial value
  elif [[ $curr_key ]]; then              # on a non-blank line with no equal sign...
    content[$curr_key]+=$line             # ...append the current line to the current value
  fi
done

declare -p content                        # print what we've found

给定您的输入文件,并使用bash 4.0或更高版本运行,以上内容将作为输出显示(仅针对可读格式进行了修改):

declare -A content='([car]="nissan,ford,toyota,honda"
                     [colors]="green, orange, purple, white,yellow"
                     [fruit]="mango, lime, orange,grape" 
                     [country]="russia, england, ireland,usa,mexico,australia" )'

如果然后要遍历类别的成员,则可以按照以下步骤进行:

IFS=', ' read -r -a cars <<<"${content[car]}"
for car in "${cars[@]}"; do
  echo "Found a car: $car"
done

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Shell脚本将XML文件的标签存储在数组中

来自分类Dev

从文件中读取整数并存储在数组中

来自分类Dev

从输入文件读取并存储在数组C ++中

来自分类Dev

BASH读取txt文件并存储在数组中

来自分类Dev

BASH读取txt文件并存储在数组中

来自分类Dev

读取文件以删除空格并存储在数组中

来自分类Dev

如何在shell脚本中基于模式将字符串拆分并存储到数组中

来自分类Dev

使用ArrayList将文本文件拆分并存储到数组中

来自分类Dev

在分隔符后拆分文本并存储到数组中

来自分类Dev

拆分String数组并存储在列表中

来自分类Dev

拆分textarea并存储在数组中,然后将每个元素发布到firestore

来自分类Dev

将字符串拆分并存储在数组 php 中

来自分类Dev

如何在python中使用shell命令拆分文件

来自分类Dev

使用Shell脚本从xml获取元素并将其存储在数组中

来自分类Dev

读取文件文本并存储在数组2d中

来自分类Dev

PHP-在数组中获取数组并存储/操作

来自分类Dev

使用strtok解析C中的字符串并存储在数组中

来自分类Dev

逐行读取文本文件,然后使用批处理脚本将其存储在数组中

来自分类Dev

读取CSV的单个列并存储在数组中

来自分类Dev

逐行读取C并存储在数组中

来自分类Dev

从“ read”中拆分单词并存储到数组?

来自分类Dev

从txt文件读取数据并存储在数据框中

来自分类Dev

拆分并存储在Perl中

来自分类Dev

如何使用Shell脚本拆分文本并仅获取数组值?

来自分类Dev

如何在shell脚本中使用while按行加入空行的字符文件?

来自分类Dev

在空行 X 行后拆分文件

来自分类Dev

将脚本 src 存储在数组中

来自分类Dev

在 ruby 脚本中解析 JSON 文件并存储特定值

来自分类Dev

在Shell脚本中使用数组

Related 相关文章

  1. 1

    使用Shell脚本将XML文件的标签存储在数组中

  2. 2

    从文件中读取整数并存储在数组中

  3. 3

    从输入文件读取并存储在数组C ++中

  4. 4

    BASH读取txt文件并存储在数组中

  5. 5

    BASH读取txt文件并存储在数组中

  6. 6

    读取文件以删除空格并存储在数组中

  7. 7

    如何在shell脚本中基于模式将字符串拆分并存储到数组中

  8. 8

    使用ArrayList将文本文件拆分并存储到数组中

  9. 9

    在分隔符后拆分文本并存储到数组中

  10. 10

    拆分String数组并存储在列表中

  11. 11

    拆分textarea并存储在数组中,然后将每个元素发布到firestore

  12. 12

    将字符串拆分并存储在数组 php 中

  13. 13

    如何在python中使用shell命令拆分文件

  14. 14

    使用Shell脚本从xml获取元素并将其存储在数组中

  15. 15

    读取文件文本并存储在数组2d中

  16. 16

    PHP-在数组中获取数组并存储/操作

  17. 17

    使用strtok解析C中的字符串并存储在数组中

  18. 18

    逐行读取文本文件,然后使用批处理脚本将其存储在数组中

  19. 19

    读取CSV的单个列并存储在数组中

  20. 20

    逐行读取C并存储在数组中

  21. 21

    从“ read”中拆分单词并存储到数组?

  22. 22

    从txt文件读取数据并存储在数据框中

  23. 23

    拆分并存储在Perl中

  24. 24

    如何使用Shell脚本拆分文本并仅获取数组值?

  25. 25

    如何在shell脚本中使用while按行加入空行的字符文件?

  26. 26

    在空行 X 行后拆分文件

  27. 27

    将脚本 src 存储在数组中

  28. 28

    在 ruby 脚本中解析 JSON 文件并存储特定值

  29. 29

    在Shell脚本中使用数组

热门标签

归档