您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Linux中的命令中间传递带有xargs的所有参数

如何在Linux中的命令中间传递带有xargs的所有参数

这是做到这一点的一种方法

pdftk $(ls | sort -n) cat output combinewd2.pdf

或使用反引号

pdftk `ls | sort -n` cat output combinewd2.pdf

正如评论中指出的那样,这不适用于包含空格的文件名。在这种情况下,您可以使用eval

eval pdftk $(while IFS= read -r file; do
    echo \"$file\"
done < <(ls | sort -n)) cat output combinewd2.pdf

假设有两个名为“ 0 foo”和“ 1 bar”的文件,那么eval的结果将是所需的命令,文件名用双引号引起来:

pdftk " 0 foo " " 1 bar " cat output combinewd2.pdf

如果文件名中可能包含换行符,请使用find命令,请参阅@joeytwiddle在@andrewdotn答案中的讨论。以下解决方案还使用sed命令转义双引号来处理带双引号的文件名:

eval pdftk $(while IFS= read -r -d '' file; do
    echo \"$file\"
done < <(find . -maxdepth 1 -type f -print0 | \
    sed 's/"/\\"/g'| sort -zn)) cat output combinewd2.pdf
其他 2022/1/1 18:19:19 有460人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶