我有一个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 会导致退出时跳过脚本的其余部分。