Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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:获取文件中每行的参数1并将其放入数组中_Arrays_Bash_Unix - Fatal编程技术网

Arrays Bash:获取文件中每行的参数1并将其放入数组中

Arrays Bash:获取文件中每行的参数1并将其放入数组中,arrays,bash,unix,Arrays,Bash,Unix,我有一个包含许多行的文件。每行由第一个1字字符串和第二个数字组成(参数1和参数2之间用空格分隔)。我需要创建一个贯穿每一行的脚本,并将参数1分配给一个数组,将参数2分配给另一个数组。然后,我需要使用循环以相同的顺序(在文件中)打印这两个数组。然后我必须按字母顺序对字符串(arg1)进行冒泡排序,但是数字(arg2)必须按照字符串在文件中的顺序进行排序。然后我需要以新的排序顺序打印这两个参数(现在按字母顺序排列,但旁边有原始数字) 以下是我认为它应该是什么样子,但我无法工作: for line i

我有一个包含许多行的文件。每行由第一个1字字符串和第二个数字组成(参数1和参数2之间用空格分隔)。我需要创建一个贯穿每一行的脚本,并将参数1分配给一个数组,将参数2分配给另一个数组。然后,我需要使用循环以相同的顺序(在文件中)打印这两个数组。然后我必须按字母顺序对字符串(arg1)进行冒泡排序,但是数字(arg2)必须按照字符串在文件中的顺序进行排序。然后我需要以新的排序顺序打印这两个参数(现在按字母顺序排列,但旁边有原始数字)

以下是我认为它应该是什么样子,但我无法工作:

for line in ${filename[*]}; do
    for (( i=0; i<=${#filename[*]}; i++ )); do
        array=( $(array + arg1) )
    done
done
${filename[*]}中的行的
;做

对于((i=0;i有许多方法可以满足您的需要,以下是一个示例:

我的文件列表,每行有一个单词字符串和一个数字:

cat mylist.txt
word_b 20
word_h 80
word_c 30
word_e 50
word_d 40
word_f 60
word_g 70
word_a 10
所以,你可以这样做:

#!/bin/bash

# Declare arrays
words_array=()
numbers_array=()

# Read line by line from SORTED file list
filename="mylist.txt"
IFS=$'\n'
for line in `cat $filename | sort`; do
  # Assign the word in the first position and the number in the second to variables
  word=$(echo $line|awk '{print $1}')
  number=$(echo $line|awk '{print $2}')
  # Append values to each array
  words_array+=("$word")
  numbers_array+=("$number")
done

# Then use loop and share iterator between arrays
for (( i=0; i<=${#words_array[@]}; i++ )); do
  echo  "${words_array[$i]} ${numbers_array[$i]}"
done

欢迎使用Stack Overflow。请将您自己的代码添加到您的问题中。您至少需要显示您自己为解决此问题所做的研究量。请将示例输入(无描述、无图像、无链接)和该示例输入的所需输出添加到您的问题中(无评论)考虑在“代码”> Bash冒泡排序数组< /C>中运行谷歌搜索;找到一个看起来有希望的帖子(或两个),实现自己的代码,如果有问题,请返回并用代码更新问题,并对问题进行描述。我已经对原来的问题做了一些编辑,如果有人能给我提供一些有用的信息,请告诉我。我真的不知道这些脚本编写的东西有多少,如果我能找到一些有用的东西(我在网上找不到任何有助于这一点的东西),我将不胜感激。
./myscript.sh
word_a 10
word_b 20
word_c 30
word_d 40
word_e 50
word_f 60
word_g 70
word_h 80