我想做一些事情,比如作为通配符匹配的一部分,并像正则表达式匹配一样使用它。命令可能看起来像这样
cat foo_* | python magic.py > magic_*
Run Code Online (Sandbox Code Playgroud)
如果我的文件名是
foo_biz
foo_baz
Run Code Online (Sandbox Code Playgroud)
我希望输出在名为
magic_biz
magic_baz
Run Code Online (Sandbox Code Playgroud)
有效地改变文件名foo_*来magic_*。
是否可以在 shell 命令中执行此操作?我正在使用bash,但其他 shell 的答案也很好。
如果我理解你想要做什么,你可以完成它,但需要更多的工作:
for f in foo_*; do python magic.py <"$f" >"${f/foo/magic}"; done
Run Code Online (Sandbox Code Playgroud)
(注:我也换成了无用的使用猫与<重定向。)