因此,我正在bash中创建脚本,并且试图读取保存在同一目录中的文本文件。我需要阅读该文件的nth
行,然后将其保存到一个变量中,以便以后使用,但是我不确定该怎么做
下面列出了我目前尝试的内容,但它实际上是从文件中读取该行,将其保存为变量,然后从该文件中删除该行并重复。这是一个hack,虽然可以,但不是我想要的,我无法获取nth value
,并且它正在从我绝对不想要的文件中删除。
read -r first<"test.txt" // reads first line and stores in first
sed -i -e "1d" "test.txt" . // removes first line
read -r second<"test.txt" // reads first line and stores in second
sed -i -e "1d" "test.txt" . // removes first line
例如,如果我想获得第二行,我已经看过sed '2q;d' file
,但不确定如何保存结果/保存在何处。它在终端打印吗?感谢您的任何帮助,谢谢!w
答案 0 :(得分:1)
sed '2q;d' file
将file
中的第二行打印到终端。
要使用它填充变量,请使用bash的命令扩展功能:
$ var=$(sed '2q;d' file)
$ echo "$var"
this is second line
答案 1 :(得分:0)
使用head
和tail
的简单解决方案:
a=$(head -2 test.txt | tail -1 )
将test.txt的第二行保存到变量$a
中。