在封闭应用程序中,我必须捕获变量($text)中的字符串,如:

A00_ABC_OK

,我必须过滤单个文件,如:
XA00_ABC

其中x可以是任何字符。
在这个封闭的应用程序中,我只需输入一行shell命令,脚本就不起作用了。我试过不同的命令,但没人能正常工作
echo $text | sed 's/_OK//;s/^/*/' | xargs ls

a00嫒abc嫒ok->*a00嫒abc->ls*a00嫒abc=不工作
echo $text | sed 's/_OK//;s/^/*/' | xargs find -name

a00庠abc庠ok->*a00庠abc->find-name*a00庠abc=不工作
ls -1 | grep < echo $text | sed 's/_OK//;'

ls-1->grep a00_ABC公司
我在Linux CentOS上使用服务器
谢谢!

最佳答案

通配符由shell展开,但在从标准输入添加参数后,xargs不会使用shell执行命令。
不必将通配符放入变量中,只需将其放入命令中即可。可以使用shell的内置参数扩展替换运算符从值中删除_OK

ls *"${text/_OK/}"

07-27 19:11