第七页序425 2022-01-16 04:35 采纳率: 0%
浏览 34
已结题

shell中怎么按行读取文件内容(每一行包含空格)并保存到数组变量中,且一行内容对应一个数组元素

文件内容如下:
ENSRNOG00000066169 ENSRNOG00000066169 Gene Expression
ENSRNOG00000070168 Olr56 Gene Expression
ENSRNOG00000070901 Irgq Gene Expression
ENSRNOG00000018029 Doc2g Gene Expression

本来想要用read命令按行读取文件内容赋值给变量,然后直接将每行对应的变量内容加上引号输出成一整行,再重定向给另一个文件,再将文件内容赋值给一个变量,最后将该变量数组话就行;
代码如下:

#!/bin/bash
cat $1 | while read line
do
        arrays=("$line")
        echo -n "\"${arrays[i]}\" " >> proceed.txt
done

kang=$(cat proceed.txt)
ARRAYS=($kang)
echo ${ARRAYS[0]}
echo ${ARRAYS[2]}

可是由于每行中存在空格,导致每一行就不是对应一个数组元素,将变量数组化的时候,会自动将空格视为分隔,分成多个数组元素。
运行结果如下:
"ENSRNOG00000066169
Gene

请问大家这该怎么改,或者怎么写,万分感谢!

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2022-01-18 01:41
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论
    编辑
    预览

    报告相同问题?

    问题事件

    • 系统已结题 1月23日
    • 创建了问题 1月16日
    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部