gpt4 book ai didi

string - 终端查找命令 : Manipulate Output String

转载 作者:行者123 更新时间:2023-11-29 09:02:55 25 4
gpt4 key购买 nike

我正在尝试通过 find 命令操作文件名:

find . -name "*.xib" -exec echo '{}' ';'

例如,这可能会打印:

./Views/Help/VCHelp.xib

我想做:

./Views/Help/VCHelp.strings

我尝试过的:

find . -name "*.xib" -exec echo ${'{}'%.*} ';'

但是,'{}' 没有被识别为字符串或其他东西......


我还尝试了以下方法:

find . -name "*.xib" -exec filename='{}' ";" -exec echo ${filename%.*} ";"

但它试图执行名为“文件名”的命令而不是分配变量:

find: filename: No such file or directory

最佳答案

您不能对文字字符串使用参数扩展。尝试先将其存储在变量中:

find . -name '*.xib' -exec bash -c "f='{}' ; echo \${f%.xib}.strings" \;

-exec 将其后的第一个参数视为命令,因此您不能简单地给它 filename='{}' 因为 find 不使用 sh 来执行你给它的东西。如果你想运行一些 shell 东西,你需要使用 shbash 来结束。

或者使用sed:

find . -name '*.xib' | sed 's/.xlib$/.strings/'

关于string - 终端查找命令 : Manipulate Output String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13563650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com