arrays - awk 命令结果放入数组

标签 arrays linux bash

我有一个包含这个的文本文件:

Hello 4
Bye 2
Toto 2

我想将每行的第一个字符串放入 MyArray1,将整数放入另一个 MyArray2。

我写了这个,但它不起作用。

#!/bin/bash

countline=$(awk '{ print $1 }'  test | wc -l)


for ((i=0; i<$countline ;i=i+1))

    do

        MyArray1[$i]=awk '{ print $1 }'  test
done


for ((i=0; i<$countline ;i=i+1))

    do

        MyArray2[$i]=awk '{ print $2 }'  test
done

请帮帮我。

最佳答案

这样就可以了:

while read -r f1 f2; do 
    ary1+=("$f1")
    ary2+=("$f2")
done < file

$ printf "%s\n" "${ary1[@]}"
Hello
Bye
Toto

$ printf "%s\n" "${ary2[@]}"
4
2
2

或者你可以使用cut

arryone=( $(cut -d ' ' -f1 file) )
arrytwo=( $(cut -d ' ' -f2 file) )

关于arrays - awk 命令结果放入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17556641/

相关文章:

linux - 通过excel生成的相关值,我想让矩阵看起来均匀

linux - 是否可以从命令行设置 setsockopt()

python - 有什么方法可以从当前正在执行的 python 程序中逐行输出管道?

linux - 在每个 bash 创建一个命令后在 screen 上运行命令

c - 循环遍历字符串数组,然后使用 scanf_s c 转换为字节

java - 在java程序中正确使用多维数组

linux - 在 linux 中搜索所有出现的字符串

python - 使用 grep 比较两个 Python 包列表

c++ - 确定字符串是否具有所有唯一字符

java - 我的数组一直打印空值。填写不当?