从文件中获取输入并将其存储在变量中

从文件中获取输入并将其存储在变量中

该脚本应从文件(例如 input.txt)读取输入,将文件的每一行(N 行)存储在单独的变量中,并在不同的位置唯一地使用每个变量。

例如,一个文件有 4 行 - A B C D,这些应该存储在 4 个变量中。

答案1

下面将把 的每一行加载/tmp/file到一个数组中,因此1可以通过变量${array[0]}等访问该行。

#!/bin/bash
IFS=$'\n' array=($(cat /tmp/file))

答案2

正如 Kusalananda 指出的,这听起来像是一个 xy 问题。

您的问题的可能awk解决方案是:

awk 'BEGIN{ RS = ""; FS = "\n"}{print "First name:",$1,"Second name:",$2,"Org name",$3,"CN name:",$4}' input

如果您决定使用 shell 变量,我认为您需要这样的东西:

#!/bin/bash

input=/path/to/input

mapfile -t array <"$input"

# If you don't have bash v3 use this instead of mapfile
# OLDIFS=$IFS
# IFS=$'\n'
# array=($(cat input))
# IFS=$OLDIFS

echo "First name: ${array[0]}, Second name: ${array[1]}, Org name: ${array[2]}, CN name: ${array[3]}"

相关内容