wildcard生成间隔设为+
时间: 2024-11-22 16:47:52 浏览: 5
在一些操作系统和shell脚本中,特别是在Linux和MacOS中,通配符(wildcard)是一种特殊的字符序列,用于匹配文件名。如果你想在使用通配符时自动在文件名之间插入加号`+`,通常是在列出目录下的所有匹配文件时,这并不直接支持,因为通配符本身不是用于控制这种格式化。
然而,你可以通过先收集匹配的文件列表,然后在循环或数组操作中手动插入加号来达到这个效果。例如,在bash shell中:
```sh
files=(*.txt) # 获取所有.txt文件
formatted_files=""
for file in "${files[@]}"; do
formatted_files+=" $file"
done
formatted_files="${formatted_files%?}+${formatted_files##*?}" # 在最后一个元素前加 +
echo "$formatted_files" # 输出:file1 + file2 + file3
```
这里首先获取了所有`.txt`文件,然后在`formatted_files`数组中逐个添加文件名,最后在最后一个文件名后面加上加号。
请注意,这种方法依赖于具体的Shell环境,并不是所有场景下都能直接生成加号分隔的结果。
相关问题
not+support+wildcard+in+db+name+when+grant+database+level+privilege
根据提供的引用内容,可以得知Oracle数据库在授予数据库级别权限时不支持通配符。也就是说,当你授予数据库级别的权限时,你必须指定一个具体的数据库名称,而不能使用通配符来匹配多个数据库。
例如,在以下语句中,我们试图授予用户“testuser”对所有以“mydb_”开头的数据库的“connect”权限:
```
GRANT CONNECT TO testuser@'%' IDENTIFIED BY 'password' WITH ADMIN OPTION;
GRANT CREATE SESSION TO testuser@'%' IDENTIFIED BY 'password' WITH ADMIN OPTION;
GRANT SELECT ANY TABLE TO testuser@'%' IDENTIFIED BY 'password' WITH ADMIN OPTION;
GRANT INSERT ANY TABLE TO testuser@'%' IDENTIFIED BY 'password' WITH ADMIN OPTION;
GRANT UPDATE ANY TABLE TO testuser@'%' IDENTIFIED BY 'password' WITH ADMIN OPTION;
GRANT DELETE ANY TABLE TO testuser@'%' IDENTIFIED BY 'password' WITH ADMIN OPTION;
```
然而,这样的语句是不被支持的,你必须指定一个具体的数据库名称,例如“mydb_test”。
wildcard makefile
wildcard Makefile是一种特殊的Makefile编写技术,它利用了Unix shell的通配符功能,允许Makefile动态地处理未指定目标名的情况。在标准Makefile中,如果想要包含一组文件,通常需要手动列出每个文件的名字。然而,当有一组文件需要频繁更新,且文件名模式固定时,比如所有`.cpp`源文件或`.h`头文件,使用wildcard规则可以使Makefile更简洁、易维护。
例如,一个简单的Makefile片段可以这样编写:
```makefile
SOURCES := $(wildcard *.cpp)
OBJECTS := $(patsubst %.cpp,%.o,$(SOURCES))
all: $(OBJECTS)
%.o: %.cpp
gcc -c $< -o $@
clean:
rm -f *.o
```
在这个例子中,`$(wildcard *.cpp)`会匹配当前目录下所有的`.cpp`文件,并将它们保存在`SOURCES`变量中。`$(patsubst %.cpp,%.o,$(SOURCES))`则会根据这个模式生成对应的编译目标(`%.o`)。这样,每当有新的`.cpp`文件加入,Makefile就能自动识别并处理它们。
阅读全文