将文件中的行放入文件名中

将文件中的行放入文件名中

我有一个hdsentinel可执行脚本,当我输入

./hdsentinel 

在终端上我可以得到有关我的硬盘健康状况的信息。

当我输入:

./hdsentinel >hd.log

我在文件中获取了所有信息hd.log

在现场/home/user/Desktop我有一个文件示例。在 hd.log 上面的文件名中,我想输入文件 example 中的第三行(第三行是 192.168.1.1),结果是hd192.168.1.1.log。这个怎么做?

答案1

试试这个,这里我使用 sed 打印文件示例的第 n(第 3)行,并$(sed '3q;d' <example-file-path>)在输出文件名中使用表达式的结果

./hdsentinel > "hd$(sed '3q;d' /home/user/Desktop/example).log"

解释:

sed 'NUMq;d' file

其中 NUM 是要打印的行号;例如, sed '3q;d' file 打印文件的第三行。

NUMq当行号为 时将立即退出NUM

d将删除该行而不是打印它。

因此,除了第 NUM 行之外的所有行都将被删除,因为 q 会导致退出时跳过脚本的其余部分。

相关内容