|
楼主 |
发表于 2017-12-7 05:31:58
|
显示全部楼层
Action Types# t* V: [6 a5 Z
* {! s& S l" F3 j
在 "Action panel 操作面板"上要做的第一件事是使用 "action type 动作类型" 下拉列表来选择要执行的操作种类。操作类型主要定义了在 "操作面板" 上可用的设置。操作类型和target type目标类型的组合决定了 PowerGREP 对main part of the action操作的主要部分或找到这些匹配项的文件所执行的搜索匹配的作用。PowerGREP 提供十二种操作类型:+ k3 w8 |% A- W% o+ b2 u: r
1. Simple search
' c. L# l. B0 Q5 _# T2. Search; t1 S' p1 X* o6 V9 Y" E9 `. I
3. Collect data
$ o ]6 l+ X! [* A4. Count matches
7 m) @/ n+ F+ N5 L0 u3 w5. List files
. s4 G2 q" U* d: s$ q S6. File or folder name search
8 O3 j* ] Q; C- F: S4 p7. File or folder name collect
8 Y \0 A* H4 c% J0 a8. Rename files or folders
0 p0 p# T! a9 C. w: p6 S6 c9. Search and replace
7 k' Z+ W& `: P- s) O# i10. Search and delete. W t0 k. m- f, W
11. Merge files1 P! q4 O0 Z8 h+ @1 c
12. Split files
* q% W& o: u) L# V1 _3 jSimple Search
( S6 Y9 g5 V" K$ S! e
8 I2 E1 [& q( H, P$ w4 A4 @
2 h/ u* h6 V: ]) O- h, K6 p$ a+ R* ^& h"简单搜索" 操作类型隐藏了通常为操作面板提供复杂外观的大多数控件。如果只想通过一组文件搜索一个或多个搜索字词, 并在 PowerGREP 中查看结果, 请使用此操作类型。"简单搜索" 和 "搜索" 之间的主要区别在于, "简单搜索" 不支持筛选文件或创建目标文件, 而file sectioning文件剖切和context上下文仅提供 "off" 和 "line by line" 之间的选择。: r( E. H# ~% C# V
Group Identical Matches 组相同的匹配
$ N8 M2 y! a* B1 p6 y1 w
; _% f2 y. L* `4 }# |! V打开只收集相同的搜索匹配一次。关闭以列出所有搜索匹配项, 包括相同的匹配项。在Group Identical Matches时, 编辑器将不突出显示源文件中的匹配项, 结果将显示不带上下文的匹配项。
# n) ?" z/ k7 {* S9 c5 e, yList Only Files Matching All Terms 仅列出与所有术语匹配的文件: ]0 b/ }1 g* D5 L' Y" U: U" L9 f
打开以列出或处理与所有搜索字词匹配的文件。关闭以列出或处理匹配一个或多个搜索字词的所有文件。仅当操作的主要部分的搜索类型为 list 列表或 delimited set of search terms 分隔的搜索字词集时, 此选项才可用。0 \2 q) [" i. [8 \: e
Search 搜索9 {8 y! g8 L& i$ a
! p* C: @' |. p8 y* j4 ]; ["搜索" 操作类型扩展了 "简单搜索" 和其他功能。您可以使用 "filter files筛选文件" 操作部分排除在其中找到一个或多个搜索字词的文件。实质上, 您可以通过对 a 的操作搜索的主要部分和对 b 的file filtering文件筛选搜索来搜索匹配 "A and not B" 的文件。操作面板的 "文件剖分" 和 "上下文" 部分还显示了它们的全套选项。在 "操作" 面板的底部, 可以设置target and backup options目标和备份选项, 将搜索匹配项保存到一个或多个文件中。- v3 G2 I. w9 }9 ~& I) {
在操作面板的顶部, "搜索" 操作类型最初显示相同的两个 "list only files matching all terms 仅列出匹配所有术语的文件" 和 "group identical matches 组相同匹配" 复选框作为 "简单搜索" 操作类型。当打开 "简单搜索" 不可用的 "group identical matches" 时, 将显示其他选项。在将搜索匹配项saving search matches into files保存到文件中时, 这些选项非常有用。* ]- ?) S3 l1 ^# g) d
Group Results for All Files 将所有文件的结果分组! O3 H2 n8 `$ p/ P9 _ d
打开, 为所有通过搜索的文件生成一组结果。关闭为每个文件生成单独的结果集。
9 `% T- C# I7 B3 a) zOrder of Collected Matches 收集的匹配顺序/ A5 O7 e, u* P0 j0 w- C
选择将收集的匹配项保存到目标文件中的顺序。$ r# K# Y# \' O# z! a6 i& Z
* Alphabetic: A..Z
6 k6 a2 g; @; h+ x6 q7 k: \# _* Alphabetic: Z..A A+ e+ _1 p5 ^ j3 g7 _" K
* Alphanumeric: A..Z, 0..9; x" `! _* a: I; J; b& r
* Alphanumeric: Z..A, 9..0
% D$ `/ T/ s; h3 a9 a: F- W+ A3 t9 H& Y* By increasing totals6 m! G$ A1 X1 g: R2 n. P F
* By decreasing totals
& y+ ^+ M4 j& X/ |7 W( ]Minimum Number of Occurrences 最小发生次数
4 P. [4 i" }% b$ q1 n/ @# m) D j0 N ?8 }. V( d9 A9 k
设置为1可将所有匹配项保存到其目标文件中, 而不考虑每个匹配发生的次数。设置为大于1的数字, 只保存那些多次发生的匹配项。从结果中删除的匹配次数会减少。它们不保存到目标文件中, 它们不在结果面板中列出, 并且在编辑器中没有突出显示。7 z( W3 a( l/ }" Y
Example: Extract or delete lines matching one or more search terms 提取或删除与一个或多个搜索字词匹配的行+ k2 A$ e: J: D) z" f) z
Collect Data 收集数据
2 I, k0 U! Q3 b! k$ v
/ {% C0 |- A5 L$ C% l# e% T
) p, p3 F3 }1 A# Y0 L, S"收集数据" 操作类型就像 "搜索" 操作类型一样运行搜索。它提供了所有相同的选项, 在标记为 "收集" 的操作的主要部分中有一个额外的编辑控件。在那里, 您可以输入在每次找到搜索匹配时要收集的文本。使用正则表达式时, 可以在搜索和替换中使用与替换文本相同的语法。搜索字词列表时, 您可以输入要为每个搜索匹配收集的不同文本。使用分隔的搜索字词列表时, 可以输入要作为分隔对收集的搜索字词及其相应文本。如果您不键入要为特定搜索字词收集的任何文本, 则会收集实际的搜索匹配, 就像 "搜索" 操作类型一样。' `; Y n/ s% z' _* G2 z8 G* K
如果要处理的文本超出了capturing groups and backreferences捕获组和引用可以轻松完成的操作, 请打开 "extra processing额外处理", 在要为每个搜索匹配收集的文本上运行额外的搜索和替换。在要收集的文本和额外的处理中, 可以使用引用从 "filter files筛选器文件"、"file sectioning文件切片" 和操作的主要部分的正则表达式中命名捕获组。6 W9 ]1 o3 M% L& O, t- E! m8 s
Examples: Find email addresses, Collect page numbers, Collect XML Data with entities replaced, Inspect web logs and Extract Google search terms from web logs
- X$ ?( I# C3 x) [$ B查找电子邮件地址、收集页码、用替换的实体收集 XML 数据、检查 web 日志、从 web 日志中提取 Google 搜索字词- s$ x V; i: ~ {% b4 }
Count Maches 计数匹配
$ l7 H O. B6 N% o
$ j( @4 E7 V) ?% G$ h
8 k' a- D0 Q/ J& q8 }* C H"count matches" 操作类型就像 "搜索" 操作类型一样运行搜索。但是, "计数匹配" 不显示在文件中找到的搜索匹配结果, 而是显示您在操作的主要部分中输入的搜索字词, 以及该搜索字词匹配的次数。结果中也列出了没有匹配项的搜索条件。在搜索正则表达式时, 每个 regex 的所有匹配项都将计入该 regex, 即使匹配不相同。
6 B8 c/ b) g7 m3 MList Files 列出文件$ i% F+ B* P/ i8 y. v
' C1 E9 J" h: | b
"列表文件" 操作类型在操作的主要部分不需要搜索字词。如果不提供搜索条件, PowerGREP 只列出文件选择器中包含的所有文件。如果您提供搜索字词, PowerGREP 将搜索文件的内容以查找它。将列出包含搜索字词的文件, 而不包含搜索字词的文件将不列出。你可以通过打开 "invert search results 反转搜索结果" 来做相反的事情。如果要同时执行这两种功能, 请列出匹配 "A and not B" 的文件, 关闭 "反转搜索结果"。设置搜索 A 的主操作, 并使用 "筛选文件" 选项排除包含 B 的文件。
4 z) h( [% L& B( b( e, q7 I搜索结果中从不列出匹配项。仅文件名。在 "操作面板" 的顶部, 您可以选择仅列出文件名、相对于文件选择器中标记的文件夹的路径或完整路径。这使得 "列表文件" 操作类型比 "简单搜索" 或 "搜索" 快得多, 因为在文件中找到第一个搜索匹配项后, "列表文件" 将继续使用下一个文件, 而其他两个操作类型总是尝试查找所有搜索匹配项。每个文件都可以在结果中列出。8 Q& x; C+ h2 z2 t2 u9 J4 d* \5 S
"列表文件" 操作的目标选项允许您将路径列表保存到文件中, 以及复制、**或删除找到的文件。
. y$ S. s( y @8 b- D) l oExample: Find files not containing a search term 查找不包含搜索字词的文件' E5 s; Q( p# e
File or Folder Name Search 文件或文件夹名称搜索0 R: X$ E3 x/ Y' d3 a
' p5 I- ~" v' s" p1 f. g$ W3 X0 @! @3 D
如果希望操作的主要部分搜索文件的名称而不是其内容, 请将操作类型设置为 "文件或文件夹名称搜索"。"要搜索的内容" 设置决定是否只搜索文件的名称、文件夹的名称或文件和文件夹的名称。该设置还确定是否仅搜索文件的名称、文件相对于文件选择器中标记的文件夹的路径或文件的完整路径。如果设置了目标选项以保存找到的文件列表, 则 "搜索内容" 设置还将确定文件路径中保存到目标文件中的部分。
* X1 _1 m6 A. m- v# r# O* e如果打开 "invert results 反转结果", 则结果将显示文件或文件夹路径, 其中没有搜索字词可供查找。如果打开 "仅列出与所有术语匹配的文件", 则会得到找到所有搜索字词的文件或文件夹路径。如果您打开这两个选项, 就会得到一个所有路径的列表, 其中没有搜索字词或某些搜索条件, 但不能找到所有搜索字词。
5 n" r/ N* A! V. L! m& k. A- e- |有两种方法可以搜索文件名和文件内容。最简单的方法是使用 "文件名搜索" 操作类型。使用操作的主要部分搜索文件名, 并使用 "filter files 筛选文件" 选项搜索文件的内容。筛选文件总是根据文件的内容完成的, 即使是 "文件名搜索" 操作也是如此。/ U, p8 H4 X- Y# o/ X
, Q& N0 H/ T) q0 s, ], M0 W
另一种搜索文件名和文件内容的方法是使用File Selector文件选择器中的 "include files 包含文件" 和 "exclude files 排除文件" 框来包含或排除基于文件名称的文件。然后, 您可以使用 "操作面板" , 使用 "列表文件" 操作类型或搜索文件内容的其他操作类型之一来搜索所包含文件的内容。
4 v, Y2 R# k- @& b0 ]0 z- b' {7 e: i: `4 s/ K" o4 O/ X
"文件或文件夹名称搜索" 操作的target options目标选项允许您将路径列表保存到文件中, 以及复制、**或删除找到的文件和/或文件夹。
8 m4 \& H- ?. O3 w$ R& b L& x, G. m" Y) h5 c4 g+ d7 v
File or Folder Name Collect 文件或文件夹名称收集
* o* Y2 `" [' X
( F; k& Q# e: l# |0 V( y7 Y' r6 ^7 a8 ]- W! z E& P2 a: W/ u
"文件或文件夹名称收集" 操作类型与 "文件或文件夹名称搜索" 操作类型相对应, 就像 "收集数据" 操作类型与 "搜索" 操作类型相对应。它搜索文件和文件夹的名称, 但不是收集搜索匹配项, 您可以使用替换字符串语法指定要收集的不同文本, 这可以通过 "额外处理" 进行进一步的操作。对于此操作类型, Path placeholders路径占位符也非常有用。4 w6 H# v( [ D0 L7 m
Example: Process files in a batch file or script 在批处理文件或脚本中处理文件
; e& Q' f. I9 _Rename Files or Folders 重命名文件或文件夹) {1 y% h% M0 N
) U- ]9 g6 B" V/ ?. `
7 N% e0 l4 K8 X( ]! ^"重命名文件" 操作类型使该操作的主要部分中的搜索字词在文件名称而不是文件内容上起作用。每个文件的新名称是通过在文件名称上运行搜索和替换来确定的。
$ ^0 G& k; s$ Q# e"重命名文件" 操作类型不仅可以重命名文件。在 "操作" 面板的顶部, 您可以选择是仅在文件的名称上执行此搜索和替换, 还是在文件路径上相对于文件选择器中标记的文件夹或文件的完整路径。如果只搜索并替换文件的名称, 则会重命名该文件并将其保留在同一文件夹中。如果通过相对于文件夹的路径进行搜索和替换, 则文件可能会根据搜索和替换的结果**到该文件夹的不同子文件夹中。如果通过完整路径进行搜索和替换, 则可以在任何位置**该文件。确保结果是有效路径是您的责任。如果不这样做, PowerGREP 会跳过没有得到有效路径的文件。6 Z4 h8 ?" j$ N- [0 J5 U
除了重命名和**文件之外, 您还可以通过将 "目标文件创建" 选项设置为 "复制文件" 来复制它们。您甚至可以将文件添加到. zip 存档中, 或从 PowerGREP 支持的任何存档格式中提取它们。如果将 c:\file.txt 重命名为 d:\archive.zip::file_from_c.txt 然后 file.txt 被添加到 d:\archive.zip 的新名称 file_from_c. txt。反向从存档中提取文件。PowerGREP 使用双冒号从存档中的每个文件的路径中分隔存档。存档的扩展名必须是在 "首选项" 的 "存档格式" 部分中配置的。同样, 将 file.txt 重命名为 file.txt.bz2 将压缩此文件, 同时重命名 file.gz 到 file.txt 解该文件。您甚至可以通过重命名文件来解压缩和压缩. gz 进入 file.txt.bz2。这适用于在 "存档格式" 首选项中配置为单个文件压缩格式的任何扩展。 ~/ Q" s/ i \5 H) b, G* C3 ?' f6 ?
"重命名文件" 操作类型允许您使用 "筛选文件" 设置搜索每个文件的内容。您可以使用此方法仅根据其内容重命名某些文件。更强大的是将命名的捕获组添加到 "筛选文件" 的正则表达式中。然后, 可以在操作的主要部分的正则表达式和/或替换文本中使用引用到该命名捕获组。这使您可以在文件名中使用文件内容的特定部分。3 t6 W! q _- v' T8 \, J
"what to rename要重命名的内容" 设置还包括重命名文件夹的选项。如果文件夹被重命名或**, 并且该文件夹中的文件或文件夹也包含在该操作中, 则这些文件和文件夹仍会被处理, 因此在重命名或**其父文件夹后, 它们可以自行重命名或**。因此, 如果您只在文件夹名称 (而不是文件夹路径) 中重命名 A 到 B, 则文件夹 C: \ A 被重命名为 C: \ b。原来 C:\A\A 的子文件夹被重命名为 C:\B\B。
* Y& N' v. `; X) T- G如果将目标类型设置为 "copy folders 复制文件夹", 则复制的文件夹内的文件和文件夹将随父文件夹一起复制。但是, 即使复制文件夹中的文件和文件夹的名称被标记为包含在文件选择器中, 也不会进行搜索。该操作从不制作同一文件或文件夹的两个副本, 也从不复制副本。因此, 如果通过只用文件夹名称 (而不是文件夹路径) 中的 B 来替换文件夹, 则将文件夹 C:\A 复制到 C:\B。它最初 C:\A\A 的子文件夹被复制为 C:\B\A。将不会有额外的副本 C:\A\B, 也不会将其复制副本作为 C:\B\B。
/ x F& g) u" u; @8 T4 e! O操作面板的 "额外处理" 部分也可用。您可以使用它在替换文本上运行一个额外的搜索和替换, 用于重命名文件。
: z) Z0 Y5 [; u" C+ \ WExamples: Replace in file names and contents and Rename files based on HTML title tags
$ O7 x9 K% l3 I; W; O/ L7 V在文件名和内容中替换、根据 HTML 标题标记重命名文件
; E' y" j+ ~6 `" `0 Q3 ^Search and Replace 搜索和替换
9 L$ L% ?7 o. p' f) o
' U2 e% k3 ~! U9 J$ t9 X2 Q$ J7 ?6 A% e% g m9 f+ t, n
当您在 "操作" 菜单中选择 “Clear 清除" 并将操作类型设置为 "搜索并替换" 时, 您可以像在任何支持正则表达式的文本编辑器中一样轻松地运行搜索和替换。只需在搜索框中键入搜索文本, 将替换文本输入到操作的主要部分中的替换框中, 然后单击工具栏中的 “Replace 替换" 按钮。4 Y+ ^+ c' i E8 A. q( S( N& A q
但是 PowerGREP 在操作面板上提供了更多的选项。"筛选文件" 设置允许您将搜索和替换的文件限制为可以或无法匹配的单独的搜索字词集。使用 "文件剖切" 选项, 您可以将文件拆分为行或其他部分, 并分别搜索和替换每一行或节。还可以将行或节作为整体替换。
8 ~+ \% G& R* a( |9 s使用正则表达式时, 可以在替换文本中使用引用,不仅从操作的主要部分捕获组, 而且还可从 "文件切片" 和 "筛选器文件" 部分获取命名的捕获组。如果捕获组和引用不足以建立替换文本, 则可以打开 "额外处理" 以在每个替换文本上运行额外的搜索和替换。+ |; r$ o9 w0 }& ~0 N$ |: ?9 a
/ B/ s2 D* W5 d1 N"上下文" 设置不用于执行搜索和替换。它们只用于在 PowerGREP 中显示结果。如果您**在预览或执行 "搜索并替换" 后手动进行或还原替换, 则收集额外的上下文可能非常有用。" a8 e5 Y4 T! w1 u$ C
Examples: Delete repeated words, Add a header and footer to files, Add line numbers, Insert proper HTML title tags, Replace HTML tags, Replace HTML attributes, Put anchors around URLs that are not already inside a tag or anchor, Replace in file names and contents and Apply an extra search-and-replace to target files
* z! t3 i: [9 F* J. R, U% S删除重复的单词、向文件添加页眉和页脚、添加行号、插入适当的 html 标题标签、替换 html 标记、替换 html 属性、在尚未包含标记或锚点内的 url 上放置锚点、在文件名和内容中替换、对目标文件应用额外的搜索和替换
- d1 a% x' ]% W. [Search and Delete 搜索和删除
7 q( f8 @$ z- F6 G
0 S, R! }1 b, H) s' ?. s0 y) W0 F6 e9 |% H2 o ?
"搜索和删除" 操作类型实质上是 "搜索和替换" 操作类型, 没有任何替换文本。搜索匹配被替换为 "无" 或 "已删除"。有一个额外的选项, 允许您只删除某些匹配。
; }1 g1 ] z0 x# T! u3 I! ?5 O此操作类型删除搜索匹配项, 而不是文件。如果要删除找到搜索匹配项的整个文件, 请使用 "list files列表文件" 操作类型以及 "delete files 删除文件" 目标类型。
( ^9 E/ W( J9 V5 z1 {* XMatches to Delete 要删除的匹配项
8 w. R5 {6 y% c9 n/ m/ @. D# g& t& [选择要删除的搜索匹配项:
7 l1 W& t) l7 f) o* All matches 所有匹配: 删除所有搜索匹配项。9 g5 k8 x8 x, k: M5 \& g$ n
* Duplicate matches 重复匹配: 仅当文件中的同一文本已匹配时, 才删除搜索匹配项。
X+ X0 E7 s) T5 v0 }* Duplicates, separately per search term 重复, 每个搜索字词分别为: 仅当同一搜索字词在文件中已匹配相同的文本时, 才删除搜索匹配项。
: \- N- c% |# Y7 z) ?* Second and following matches 第二个和下面的匹配项: 删除文件中的第二个和后面的搜索匹配项, 而不管是否匹配相同或不同的文本。" F2 K% m; ]. i8 z
* Second and following, separately per search term 根据搜索字词分别进行第二次和后续搜索: 删除文件中每个搜索项的第二个和后面的查找匹配项, 而不管是否匹配相同或不同的文本。8 ^# @' ~( g" M) E1 Z8 G
Example: Extract or delete lines matching one or more search terms
9 R: A0 M1 r- |4 _提取或删除与一个或多个搜索字词匹配的行" y+ a. y9 ]9 T2 }* }8 [/ M) F; R
Merge Files 合并文件
( ~1 L5 Q8 ^/ Y8 t9 q! k, K% c- x9 Z: A
# S1 H$ k- A6 x3 k% A% b5 @
( s; a a# G: c& ]* P3 _9 L"合并文件" 操作类型可以在操作的主要部分中使用或不带搜索字词, 以收集 "列表文件" 操作类型所描述的文件列表。只要发现文件匹配, 文件的全部内容就会保存到一个新文件中。如果文件已存在, 则 PowerGREP 会覆盖该操作。如果在单个 "合并文件" 操作中为两个或多个匹配的文件 (甚至所有文件) 指定相同的目标文件, 则这些文件将合并到目标文件中。您可以使用 "操作" 面板上的 "收集的文本" 设置来指定在合并文件时是否出现任何文本, 以及目标文件是否应具有某些页眉或页脚文本。
5 Z: L2 F0 O4 B, ^如果将 "目标创建类型" 设置为 "merge based on search matches 基于搜索匹配的合并", 则在操作的主要部分中将显示一个标记为 "目标文件" 的框。此框允许您输入替换文本, 就像搜索和替换一样, 包括引用和 "额外处理"。不同之处在于, PowerGREP 希望您的替换文本成为有效的路径。这是 PowerGREP 将文件合并到的路径。0 P$ g8 s# I* v4 y6 b
Example: Merge web logs by date 按日期合并 web 日志
6 f: ?4 T2 S& [" L. ySplit Files 拆分文件
2 |3 t7 G* |; ?4 | n( S
4 |1 q; k, U' v( Q% ^% d; O
3 o( v) a& z- k' s: c) M' M"拆分文件" 操作类型与 "收集数据" 操作类型相同, 但有一件事除外: 为每个搜索匹配而不是要收集的文本, 您需要为每个搜索匹配提供一个目标文件的完整路径。您可以使用引用和 "额外处理" 的所有相同语法来构建此目标路径。搜索匹配被保存到此文件中。如果文件已存在, 则 PowerGREP 会覆盖该操作。如果在单个 "拆分文件" 操作中为多个匹配项指定相同的目标文件, 则它们都将保存到该目标文件中。即使在不同的源文件中找到了匹配项, 也可以同时进行拆分和合并。您可以使用 "操作" 面板上的 "收集的文本" 设置来指定在收集的匹配项之间是否应显示任何文本, 以及目标文件是否应具有某些页眉或页脚文本。
0 e# ]% L% z% G0 Y/ e& i AExamples: Split web logs by date, Split logs into files with a certain number of entries and Split database dumps |; Q; R, |, r+ @& h2 T
按日期拆分 web 日志, 将日志拆分为具有一定数量条目的文件、拆分数据库转储
) T7 R }: W3 x |
|