使用 sed 修改并执行上一个命令

使用 sed 修改并执行上一个命令

我在一个目录中有一堆 pdf 文件,它们通过很长的命令行连接在一起。有些是英文的,有些是法文的,用 和 来_e.pdf区分_f.pdf

由于它们是按照特定顺序连接的,因此命令行无法缩短,但我想修改并重新执行它,只需将其替换_e_f即可。我如何使用sed(或其他) 来实现这一点?

假设命令是

pdfjoin file1_e.pdf file2_e.pdf file3_e.pdf 

在历史上,它是命令 10。

我已经

echo !10 | sed 's/_e.pdf/_f.pdf/g'

它回显了我想要运行的命令。但我实际上想运行它,而不仅仅是显示命令。

答案1

您尝试过反引号吗?

`echo !10 | sed 's/_e.pdf/_f.pdf/g'`

尽管我不禁觉得你应该使用make

答案2

顺便说一下,GNU sed 还有更多有趣的技巧来执行命令:

echo !10 | sed 's/_e.pdf/_f.pdf/ge'

相关内容