Bash - 从包含各种数据的文件中读取特定行并存储为变量

时间:2017-05-23 05:37:04

标签: bash

我已经找到了一个似乎是一个简单问题的答案,但我觉得所有这些问题(下面)只是简单地触及了这个问题和/或使解决方案过于复杂。

Read a file and split each line into two variables with bash program

Bash read from file and store to variables

Need to assign the contents of a text file to a variable in a bash script

我想要做的是从文件中读取特定行(标题为'输入'),存储变量然后使用它们。

例如,在此代码中,某个点之后的每第9行包含一个文件名,我想将其存储为变量供以后使用。我怎么能这样做?

steps=49

for((i=1;i<=${steps};i++)); do

       ...

        g=$((9 * $i + 28)) #In.omega filename

`

对于更大的图片,我基本上需要从文件中打印一个特定的行(第9行),该文件的名称在名为&#34的文件的 g 行中指定;输入&#34 ;

        sed '1,39p;d' data > temp
        sed "9,9p;d" [filename specified in line g of input] >> temp
        sed '41,$p;d' data >> temp

        mv temp data

3 个答案:

答案 0 :(得分:0)

假设您要将$FILE文件的第49行行分配给$ARG变量,您可以执行以下操作:

$ ARG=`cat $FILE | head -49 | tail -1`

答案 1 :(得分:0)

获取名为input:

的文件的第g行中命名的文件的第9行
sed -n 9p "$(sed -n ${g}p input)"

答案 2 :(得分:0)

arg=$(cat sample.txt | sed -n '2p')

其中arg是变量,sample.txt是文件,2是行号