标签:VBA,用户窗体,列表框 有时候,我们想从数据表中搜索指定的内容,但匹配项往往不只一项,而我们想要将匹配项全部显示出来,如下图1所示。...图1 在Excel中,有很多方法可以实现,这里使用用户窗体和VBA代码来完成。 示例数据如下图2所示。 图2 单击“查找”按钮,弹出我们所设计的用户窗体如下图3所示。...,即如果某人正在搜索位置,则仅在位置列中搜索 With Range("Table1[" &SearchColumn & "]") ' 查找第一个匹配项 Set RecordRange...FirstAddress = RecordRange.Address RowCount = 0 Do ' 设置匹配值行中的第一个单元格...Set FirstCell =Range("A" & RecordRange.Row) ' 添加匹配记录到列表框
wildcard函数:如果我们想要获取某个目录下所有的C文件列表,可以使用扩展通配符函数 SRC = $(wildcard *.c) HEAD = $(wildcard *.h) all: @...,用来过滤掉字符串TEXT中所有不符合PATTERN模式的单词,只留下符合PATTERN格式的单词。...PATTERN模式的单词,保留所有不符合此模式的单词。...匹配任意一个字符 [] 我们可以指定匹配的字符放在 “[]” 中 除此之外,Makefile还有经常使用的几个自动变量也可以看做特殊通配符: $@:所有目标文件 $^:目标依赖的所有文件 $<:第一个依赖文件...:所有更新过的依赖文件 在Makefile中,通配符主要用在两个场合: 用在规则的目标和依赖中:make在读取Makefile时会自动对其进行匹配处理 test: *.o gcc -o $@ $
>,如果匹配的话,则以替换。...示例: $(patsubst %.c,%.o,x.c.c bar.c) 把字串“x.c.c bar.c”符合模式%.c的单词替换成%.o,返回结果是“x.c.o bar.o”。...>,) 功能:以 模式过滤字符串中的单词,保留符合模式的单词。可以有多个模式。...>,) 功能:以模式过滤字符串中的单词,去除符合模式的单词。可以有多个模式。...3.8 wildcard 原型: $(wildcard ) 功能:扩展通配符函数用于获取匹配此模式的所有文件列表,文件名以空格分隔。如果不存在任何符合此模式的文件,返回空。
$^ # 在规则的命令中,表示所有依赖条件。组成一个列表,以空格隔开,如果这个列表中有重复项,则去重 $,) 名称:过滤函数 功能:以 模式过滤 字符串中的单词,保留符合模式 的单词。可以有多个模式。...>,) 名称:反过滤函数 功能:以 模式过滤 字符串中的单词,去除符合模式 的单词。可以有多个模式。...功能:查找 中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式 ,如果匹配的话,则以 替换。
功能:查找中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式,如果匹配的话,则以替换。...一旦依赖目标中的”%”模式被确定,那么,make会被要求去匹配当前目录下所有的文件名,一旦找到,make就会规则下的命令,所以,在模式规则中,目标可能会是多个的,如果有模式匹配出多个目标,make就会产生所有的模式目标...1、把T的目录部分分离出来。叫D,而剩余部分叫N。(如:如果T是”src/foo.o”,那么,D就是”src/”,N就是”foo.o”) 2、创建所有匹配于T或是N的模式规则列表。...3、如果在模式规则列表中有匹配所有文件的模式,如”%”,那么从列表中移除其它的模式。 4、移除列表中没有命令的规则。...5、对于第一个在列表中的模式规则: 1)推导其”茎”S,S应该是T或是N匹配于模式中”%”非空的部分。 2)计算依赖文件。把依赖文件中的”%”都替换成”茎”S。
在这篇教程中,我们将会学习一些正则表达式的基本概念,并且学习如何在 Bash 中通过 使用它们,但是如果你希望在其他语言如 python 或者 C 中使用它们,你只能使用正则表达式部分。...下面提到的是基本元字符的列表, ◈ 点将匹配任意字符 ◈ 将匹配一个字符范围 ◈ 将匹配除了括号中提到的那个之外的所有字符 ◈ 将匹配零个或多个前面的项 ◈ 将匹配一个或多个前面的项 ◈ 将匹配零个或一个前面的项...(点) 它用于匹配出现在我们搜索项中的任意字符。举个例子,我们可以使用点如: 这个正则表达式意味着我们在名为 ‘file1’ 的文件中查找的词以 开始,以 结尾,中间可以有 1 个字符的字符串。...同样,我们可以使用任意数量的点作为我们的搜索模式,如 ,这个查询项将查找一个词,以 开始,以 结尾,并且中间可以有任意 6 个字符。 方括号用于定义字符范围。...我们在方括号中也可以定义像 或者 作为匹配字符的列表。 这就像正则表达式的 not 操作。当使用 时,它意味着我们的搜索将包括除了方括号内提到的所有字符。
功能:查找中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式,如果匹配的话,则以替换。...一旦依赖目标中的"%"模式被确定,那么,make会被要求去匹配当前目录下所有的文件名,一旦找到,make就会规则下的命令,所以,在模式规则中,目标可能会是多个的,如果有模式匹配出多个目标,make就会产生所有的模式目标...1、把T的目录部分分离出来。叫D,而剩余部分叫N。(如:如果T是"src/foo.o",那么,D就是"src/",N就是"foo.o") 2、创建所有匹配于T或是N的模式规则列表。...3、如果在模式规则列表中有匹配所有文件的模式,如"%",那么从列表中移除其它的模式。 4、移除列表中没有命令的规则。...5、对于第一个在列表中的模式规则: 1)推导其"茎"S,S应该是T或是N匹配于模式中"%"非空的部分。 2)计算依赖文件。把依赖文件中的"%"都替换成"茎"S。
SRC = $(wildcard ${DIR_SRC0}/*.cpp) $(wildcard ${DIR_SRC1}/*.cpp) #通过模式替换函数patsubst与去除目录函数notdir获取目标文件列表...(1)Makefile中内置变量 $@、$^、$<、$? 。 $@ 表示目标文件,$^ 表示所有的依赖文件,$< 表示第一个依赖文件,$? 表示比目标还要新的依赖文件列表。...(1)模式匹配替换字符串函数patsubst 用法如下: res=$(patsubst %.c,%.o,$(var) ) 以上表示将变量$(var)中所有以.c结尾的字符串变成.o结尾。...实际上变量的替换引用是模式匹配替换函数patsubst的一个简化实现。...如 %.o:%c $(CC) $< -o $@ 表示所有的目标文件及其所有依赖文件,然后编译所有目标文件的第一个依赖文件,并生成目标文件。
匹配一个字符 * 所有 GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令 例如: 只要make看到一个 .o 文件,它就会自动的把 .c 文件加在依赖关系中,如果make找到一个...下面介绍三个最常用的函数 文本处理函数 「wildcard」 $(wildcard PATTERN...) 功能:该函数被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。...「举例」 获取工作目录下的所有.c文件列表 SRC:=$(wildcard *.c) 字符串替换函数 「patsubst」 $(patsubst ,,) 功能:查找 中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式 ,如果匹配的话,则以 替换。...」 这是最复杂的部分,它的功能就是把某个目录及它的所有子目录中、需要编进程序去的文件都编译出来,打包为.o文件.
-q 或 --quiet:安静模式,减少输出信息 以下是使用yum的常用操作(这里只介绍部分了): 更新软件包列表: sudo yum update 这将更新可用软件包的列表,以确保您系统上的所有软件包都是最新的...复制和粘贴: 使用 yw 复制光标所在位置到单词末尾的内容,yy 复制整行。 使用 p 粘贴已经复制或删除的内容到光标位置后。 替换: 使用 r 替换光标所在位置的字符。...@ 和 ^ 是 make 中的自动化变量,用于表示目标和依赖的列表。具体含义如下: $@ 表示目标文件的名称。 $^ 表示所有依赖文件的列表。...例如: test: test.c gcc -o $@ $^ @ 会被替换为目标文件 test,^ 会被替换为所有依赖文件列表,即 test.c。...当所有依赖关系都得到满足后,make 会按照依赖关系逐层构建,直到生成最终的目标文件。 如果在查找依赖关系的过程中遇到错误,比如某个被依赖的文件找不到,make 会直接退出并报。
变量 make 中的变量本质是一种宏替换,用于简化和维护重复出现的字符串和字符串列表。...4.2 用于字符串替换和分析的函数 4.2.1 $(subst from,to,text) 在 text 上执行文本替换,将出现的所有 from 替换成 to 。...,replacement,text) 在 text 中寻找空格分隔的单词,如果单词匹配 pattern , 就将匹配的单词替换成 replacement 。...当 pattern 和 replacement 同时包含通配符 %,则将 replacement 中 % 替换成与 pattern 中 % 匹配的文本。...4.2.4 $(sort list) 按英文字母表顺序对列表 list 中的单词进行排序,删除重复的单词。输出是由单个空格分隔的单词列表。
在Linux中使用Grep命令 Grep命令用于查找文件中的特定模式并显示与该模式匹配的所有字段。搜索的模式通常是正则表达式。...它显示了特定的文件和匹配结果 linuxmi@linuxmi:~/www.linuxmi.com$ grep "linuxmi" * 要仅输出包含匹配模式的文件,我们使用“ -l” 如果您知道文件名可以输出所有匹配项...grep "linuxmi" test test1 test2 匹配文件中的整个单词。 默认情况下,即使在子字符串中找到了Grep,也会输出所有出现的某种特定模式。...linuxmi@linuxmi:~/www.linuxmi.com$ grep -v "linuxmi" linuxmi.txt 匹配以某个字符串开头的所有字段,例如,输出所有以单词“sat”开头的字段...它使您能够以语句形式编写简单有效的程序,以在文件中搜索特定模式,并在找到匹配项时执行操作。 当使用' awk '时,我们将花括号括起来。 模式和动作都形成规则,整个awk程序都用单引号引起来。
本文将详细讲解 Makefile 脚本中的关键概念,并结合实际案例帮助读者深入理解这些概念。 1....依赖项 (Dependencies) 依赖项是目标生成所需要的文件或其他目标。Makefile 会根据依赖关系决定哪些文件需要更新。...隐式规则 (Implicit Rules) Makefile 自带一些常用的隐式规则,如将 .c 文件编译为 .o 文件,无需在 Makefile 中显式声明。...函数 (Functions) Makefile 支持多种函数,常用于字符串操作、文件名处理等。 常用函数示例: $(wildcard pattern): 匹配模式的文件列表。...$(patsubst pattern,replacement,text): 替换文本中的模式。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。 正则表达式可以干什么?...不过也有一些例外,如: 如果 ] 字符不是第一项,它结束一个列表。若要匹配列表中的 ] 字符,请将它放在第一位,紧跟在开始 [ 后面。 \ 字符继续作为转义符。若要匹配 \ 字符,请使用 \。...-~] 若要查找不在列表或范围内的所有字符,请将插入符号 (^) 放在列表的开头。如果插入字符出现在列表中的其他任何位置,则它匹配其本身。...模块提供了re.sub用于替换字符串中的匹配项。...string : 要被查找替换的原始字符串。 count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。 flags : 编译时用的匹配模式,数字形式。
这主要用于清理产生的输出。 附加功能 一些其他功能可以帮助您在Makefile中创建更复杂的规则链。 变量 Make识别变量(或宏),它在makefile中作为替换的简单占位符。...:此变量包含当前目标的比目标更新的依赖项列表。这些将是在执行此目标下的命令之前必须重新完成的目标。 $@:此变量是当前目标的名称。这允许我们引用您尝试制作的文件,即使此规则通过模式匹配。...$<:这是当前依赖项的名称。对于后缀规则,这是用于创建目标的文件的名称。在我们的示例中,这将包含“file.jpg” $*:此文件是剥离匹配扩展名的当前依赖项的名称。...Make将转到Makefile,请参阅.SUFFIXES声明中的.png,然后转到匹配的后缀规则。然后运行列出的命令。...如您所见,我们已将.jpeg添加到后缀列表中,并为我们的规则添加了另一个后缀匹配项。 创建一些Targets 我们现在在Makefile中有很多,但我们还没有任何正常的目标。
(7) 每条命令都在一个独立 shell 环境中执行,如希望在同一 shell 执行,可以用 ";" 将命令写在一行,也可用\ 换行。...中宏作用(?.../lib # 定义匹配模式(%匹配任意个字符)和搜索路径。...vpath %.c # 取消该模式 vpath # 取消所有模式 VPATH 和 vpath 定义的搜索路径仅对 makefile 规则有效,对 gcc/g++ 命令行无效,比如不能用它定义命令行头文件搜索路径参数...变量引用与替换 obj=$(dir:%.c=%.o) 可以将变量 dir 中所有以 c 结尾的单词替换成以 o 结尾 $(addprefix src/, foo bar) 返回值为“src
zip文件中的10个Grep电子邮件地址 Grep IP地址 Grep or条件 忽略大小写 搜索时区分大小写 Grep精确匹配 排除模式 Grep和替换 带行号的Grep 显示之前和之后的行数 对结果排序...您可以使用它在文件中搜索某个单词或单词的组合,也可以将其他Linux命令的输出通过管道传输到grep,因此grep可以仅显示您需要查看的输出。...如您在上面的屏幕截图中所见,使用grep命令可以通过快速将搜索到的单词与ls命令产生的其余不必要输出隔离开来,从而节省了我们的时间。...$ fgrep is the equivalent of grep -F 此开关会将模式解释为固定字符串的列表,并尝试匹配其中的任何一个。当您需要搜索正则表达式字符时,此功能非常有用。...如您在屏幕截图中所见,当我们使用-v开关运行相同的命令时,不再显示排除的字符串 Grep和替换 传递给sed的grep命令可用于替换文件中字符串的所有实例。
读入被include的其它Makefile。 初始化文件中的变量。 推导隐晦规则,并分析所有规则。 为所有的目标文件创建依赖关系链。 根据依赖关系,决定哪些目标要重新生成。 执行生成命令。...vpath # 清除符合模式的文件的搜索目录vpath# 清除所有已被设置好的文件搜索目录 pattern需要包含%,表示匹配0/若干字符,例如: vpath %.h ....., $(subst ee,EE,feet on the street) 把feet on the street中的ee换成EE patsubst 功能和subst一样,不过匹配的是模式, $(patsubst...%.c,%.o,x.c.c bar.c) 把字串 x.c.c bar.c 符合模式 %.c 的单词替换成 %.o ,返回结果是 x.c.o bar.o strip 去掉开头和结尾的空格 $(strip...n个单词,如 $(word 2, foo bar baz) 返回值是 bar 。
ayy把当前行的内容放入a寄存器。 A-Z:用大写字母索引寄存器,可以在寄存器中追加内容。 如"Ayy把当前行的内容追加到a寄存器中。 :reg 显示所有寄存器的内容。...j的含义是grep结束后,结果停在第j项,默认是停在第一项。 vimgrep前面可以加数字限定搜索结果的上限,如 :1vim/pattern/ % 只查找那个模式在本文件中的第一个出现。...还有一种比替换更灵活的方式,它是匹配到某个模式后执行某种命令, 语法为 :[range]g/pattern/command 例如 :%g/^ xyz/normal dd。...:nbd(elete) -- 删除第n个缓冲区,并未真正删除,还在unlisted列表中。 :ba[ll] -- 把所有的缓冲区在当前页中打开,每个缓冲区占一个窗口。...如ggguG,就是把开头到最后一行之间的字母全部变为小 写。再如gu5j,把当前行和下面四行全部变成小写。 替换(normal模式) r: 替换光标处的字符,同样支持汉字。
/configure的配置输入;makefile.am通过automake生成makefile.in再由....中未定义的宏 autoscan–>autoheader–>aclocal–>automake|autoconf ?...函数: $( )或者${ } makefile系统函数: $(subst ,,)字符串替换函数...$(patsubst ,,)模式字符串替换 函数 $(strip )去空格 $(findstring ,)查找...:centos、ubuntu linux软件包分为两大阵营:RPM和DPKG,与bin安装和源码安装相比,管理包工具使用数据库方式管理软件包和包的依赖项,安装路径系统默认 RPM(rpm包文件
领取专属 10元无门槛券
手把手带您无忧上云