我在一个目录中有一堆 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'