在 bash 中循环查找结果

英戈·瓦尔斯

我想遍历jpg文件,find用来定位它们。

结果是包含./前面的完整路径名我想删除替换././newsubdir/以便我可以将其用作进程中的输出文件名,使用相同的文件夹结构newsubdir 中创建原始文件的修改副本

这是我尝试过的。

#!/bin/bash

find . -type f -name '*jpg' 
    for file do
        echo ${file:1}
    done

然而,子串提取似乎根本不起作用。是否有原因或不同的方式来做到这一点。Bash非常陌生

作为最终结果,我想要这样的事情。试图对一堆图片进行平方,但保持文件夹结构。

#!/bin/bash

find . -type f -name '*jpg' 
    for file do
        convert '$file[2048x2048]' -gravity center -extent 2048x2048 "./newsubdir${file:1}"
    done
查尔斯·达菲

你很接近!更接近原始代码(从而避免启动不必要的外壳程序):

#!/bin/bash

find . -type f -name '*.jpg' -exec bash -c '
    for file do
        convert "$file[2048x2048]" -gravity center -extent 2048x2048 "./newsubdir${file:1}"
    done
' _ {} +

...或者,使用您的原始外壳并-exec完全避免

#!/bin/bash
while IFS= read -r -d '' file; do
    convert "$file[2048x2048]" -gravity center -extent 2048x2048 "./newsubdir${file:1}"
done < <(find . -type f -name '*.jpg' -print0)

这些模式以及更多模式是UsingFind 的一部分

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何限制在bash中查找命令的结果?

来自分类Dev

如何按大小对bash中的“查找”结果进行排序

来自分类Dev

将for循环结果存储为bash中的变量

来自分类Dev

在Bash中循环遍历mysql的结果集-例程

来自分类Dev

将嵌套的for循环的结果输出到bash中的文件

来自分类Dev

循环bash中的值对

来自分类Dev

bash脚本中的for循环

来自分类Dev

bash中的数组的For循环

来自分类Dev

在bash shell中循环

来自分类Dev

bash函数中的for循环

来自分类Dev

在bash中嵌套循环

来自分类Dev

在bash中嵌套for循环

来自分类Dev

在bash中循环-语法

来自分类Dev

Bash脚本的while循环意外结果

来自分类Dev

While循环与功能结果-BASH

来自分类常见问题

我如何将“查找”命令结果存储为Bash中的数组

来自分类Dev

bash脚本从使用“ samtools”的多个输入文件中查找到新的输出csv文件的结果

来自分类Dev

在bash中查找替换数字

来自分类Dev

连接Bash中命令的结果

来自分类Dev

如何理解使用while循环进行查找的方式在Bash中的工作方式

来自分类Dev

bash中的简单while循环

来自分类Dev

如果Bash中的循环无效

来自分类Dev

在bash中并行嵌套循环

来自分类Dev

无法让bash在厨师中循环

来自分类Dev

如果Bash中的循环无效

来自分类Dev

在bash中并行嵌套循环

来自分类Dev

bash中的无限while循环

来自分类Dev

从 bash 中的 for 循环打印参数

来自分类Dev

bash中循环的总和值