如何将文件中的指定行保存到变量中。

29 浏览
0 Comments

如何将文件中的指定行保存到变量中。

我想在bash脚本中将文件的指定行保存到一个变量中\n示例:\n要读取的文件:FileToReadFromThat.txt\n

a
b
c
d
e

\n我想要保存的简单行:\n

variable="来自$HOME/FileToReadFromThat.txt的第3行"

\n希望从中得到的结果:\n

$ echo $varible
c

0
0 Comments

问题的出现原因:

在处理文件时,有时候我们需要将文件的某一行保存到一个变量中,但是我们可能不知道如何实现这个功能。

解决方法:

1. 使用cut命令:

VARIABLE="$(<file cut -d $'\n' -f 3)"

2. 使用Bash的特定命令read,对于小行号来说,是最快的方法:

IFS=$'\n' read -r -d '' _ _ VARIABLE _ <file

3. 使用Bash的mapfile命令,这可能是最灵活和最快的方法,只使用Bash的内建命令而不需要派生子进程:

mapfile -t -s 2 -n 1 VARIABLE <file

以上是解决将文件的指定行保存到变量的几种方法。根据具体的需求和文件的大小,可以选择合适的方法来实现这个功能。

0
0 Comments

在处理文件时,有时候我们需要将文件中的某一行保存到一个变量中,以便后续使用。下面介绍了两种常用的方法来实现这个目的。

第一种方法是使用awk命令。awk是一种功能强大的文本处理工具,在这里我们可以利用它来获取指定行的内容。具体的命令如下:

VARIABLE=`awk 'NR==3' file`

其中,NR表示awk内置的变量,表示当前处理的行号,通过将NR与指定的行号进行比较,就可以获取到指定行的内容。

第二种方法是使用sed命令。sed是一个流式文本编辑器,可以对文本进行各种操作。在这里我们可以使用sed命令将除了指定行之外的其他行删除,从而获取到指定行的内容。具体的命令如下:

VARIABLE=`sed '3!d' file`

其中,3表示要获取的行号,!d表示删除除了指定行之外的其他行。

需要注意的是,如果处理的文件非常大,上述的方法可能效率较低。此时,我们可以使用以下命令来提高效率:

var=$(awk '(NR==3){print;exit}' file)

这个命令与第一种方法类似,只不过加入了一个exit语句,用于在获取到指定行之后立即退出awk的执行,从而提高效率。

通过以上方法,我们可以方便地将文件中的指定行保存到一个变量中,以便后续使用。无论是使用awk还是sed,都能实现这个目的,只需要根据实际情况选择合适的方法即可。

0