如何将文件解析的结果用作 bash 命令的参数?

如何将文件解析的结果用作 bash 命令的参数?

我使用 Linux,并希望使用一个名为特雷尔比直接打开最新保存的文件。

最新保存的文件存储在文件的第七行/home/me/.trelby/state,如下所示:

PositionX:0
PositionY:0
Width:1366
Height:736
ViewMode:1
Files:5
Files/1:/home/me/writing/text-1.trelby
Files/2:/home/me/writing/text-2.trelby
Files/3:/home/me/writing/text-3.trelby
Files/4:/home/me/writing/text-4.trelby
Files/5:/home/me/writing/text-5.trelby

因此我想要执行的命令应该是:

trelby /home/me/writing/text-1.trelby

我可以使用什么命令来读取“状态”文件并将该部分/home/me/writing/text-1.trelby附加到特雷尔比命令?

答案1

一般情况下,不要过分依赖诸如行号之类的偶然信息。在下一个版本中,可能trelby会添加一行,其中包含一些新保存的设置,这样您的命令就会失效。

您提供的文件的语法相当透明,最新文件的路径以“Files/1”为前缀:使用它而不是行号。

在 bash 中,你可以使用:

trelby $(awk -F: '{if ($1=="Files/1") {print $2}}' ${HOME}/.trelby/state)

答案2

可能有更优雅或更有效的解决方案,但是这个有效:

trelby $(head -7 /home/me/.trelby/state | tail -1 | cut -c9-100)

相关内容