基本上,我想编写一个bash脚本或函数,在给定输入*a*/*b*/*c*/*d*
的情况下,它会返回所有匹配,其中每个路径组件在开头和结尾都有通配符,例如: {{1}}。将tilde(〜)视为主文件夹也是很好的。
有一种简单的方法可以在bash中执行此操作,还是需要在Python之类的内容中执行此操作?
答案 0 :(得分:2)
我会给你一个起点:
require 'functions.php';
require 'config/config.php';
require 'db.php';
use Blog\DB;
$conn = DB\connect($config['DB_USERNAME'],$config['DB_PASSWORD'],$config['DATABASE']);
if (!$conn) die('Could not Connect');
这个解决方案远非完美。具体而言,您必须解决以下问题:
x="a/b/c/d"
x="*${x//\//*\/*}*"
echo $x
# output: "*a*/*b*/*c*/*d*", or all matching paths (if any)
可能包含空格或x
字符等特殊字符。他们需要妥善逃脱。*
可能包含双斜杠。例如:x
。我想你希望它成为x=a//b
,而不是*a*/*b*
。*a*/**/*b*
可能包含前导或尾部斜杠。例如:x
或x=/a/b
。x=a/b/
可以以代字号开头。所有这些问题都可以通过x
声明和替换来解决。
另一种方法(需要更多代码,但可能更安全,更不容易出错)是使用循环解析和解释字符串,如下所示:
if
同样,这并不完美。问题包括:
这个解决方案很好,因为这些问题更易于处理,您也不必担心特殊字符。