我必须在文件的第一行中放入一个bash变量。我想它是与grep命令,但它是任何方式来限制行数?


当前回答

只读取文件的第一行并将其存储到一个变量中:

read var < file

echo $var # print only the first line of 'file'

其他回答

line=$(head -1 file)

会很好。(和前面的答案一样)。但

line=$(read -r FIRSTLINE < filename)

将稍微快一点,因为read是内置的bash命令。

要使用bash读取第一行,请使用read语句。如

read -r firstline<file

firstline将是你的变量(不需要分配给另一个)

Head从文件中提取第一行,-n参数可用于指定应该提取多少行:

line=$(head -n 1 filename)

只读取文件的第一行并将其存储到一个变量中:

read var < file

echo $var # print only the first line of 'file'

这就足够了,并将文件名的第一行存储在变量$line中:

read -r line < filename

我还喜欢awk的这个功能:

awk 'NR==1 {print; exit}' file

要存储行本身,使用var=$(命令)语法。在这种情况下,line=$(awk 'NR==1 {print;退出}’文件)。

甚至sed:

sed -n '1p' file

使用等价的line=$(sed -n '1p'文件)。


请看一个例子,当我们用seq 10来输入read时,也就是从1到10的数字序列:

$ read -r line < <(seq 10) 
$ echo "$line"
1

$ line=$(awk 'NR==1 {print; exit}' <(seq 10))
$ echo "$line"
1