bash - 在一个命令中通过 xargs 传送两个文件名(带空格)

标签 bash imagemagick command-line-interface ls xargs

我经常发现自己想要将两张最新的屏幕截图合并到一张图像中。我想使用 ImageMagick 在一个命令行中通过 xargs (?) 合并按日期排序的两个最新文件。

到目前为止,我有以下内容,但在处理文件名中的空格时遇到问题。我似乎不知道如何完成这件事。

ls -t | head -n 2 | sed 's/\n/\x0/' | xargs -0 -n 2 -I images convert images -append -quality 75 combined.jpg

最佳答案

将 sed 命令更改为 sed 's/.*/"&"/'

或者使用这个纯 bash 解决方案: 将管道中的 sed 命令替换为以下代码:

while read x; do echo "'$x'"; done

并从 xargs 中删除 -0 选项。

关于bash - 在一个命令中通过 xargs 传送两个文件名(带空格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13514252/

相关文章:

bash - 如何在 Fish shell 中为手册页着色?

php - ImageMagick SVG 到 PNG 转换删除渐变

graphics - 使用 ImageMagick 转换附加图像

image - 将 Canvas 大小调整一半 imagemagick

没有visual studio的C#编译

python - 设计带有列表的可扩展命令行界面

javascript - 通过目录中的文件进行服务器端迭代

linux - 关于 nohup ssh 的内部结构

shell - 如何通过管道输出需要文件参数的命令

bash - awk:在读取行之前打印文件的第一行