Project

General

Profile

Filter » History » Version 20

Per Amundsen, 12/14/2019 10:03 AM

1 1 Per Amundsen
_Added in 1.9.4_
2
3 18 Per Amundsen
*/filter [-asdfhHNkwxnpriocteubglLzNDE] [n-n2] [c s] <infile | dialog id> <outfile | dialog id | alias> [alias] <matchtext>*
4 2 Per Amundsen
5 3 Per Amundsen
Scans lines of text in a window, file or dialog control, any matches are then written out to another window, file, or dialog control. 
6
The order of the switch are important, they define what is the infile and what is the outfile, see the examples for more information. 
7
8 6 Per Amundsen
You can filter blank lines by specifying [[$crlf]] for the matchtext.
9
10 3 Per Amundsen
The [[$filtered]] identifier will retrieve the number of matches found.
11
12 1 Per Amundsen
*Switches*
13
14 7 Per Amundsen
-w - Indicates the parameter is a window.
15
-f - Indicates the parameter is a file.
16
-a - Sorts filtered lines by calling the optional [alias] parameter, the alias is passed two lines, $1 and $2, it must compare both and return -1, 0, or 1 to indicate relative sort order of these lines to each other.
17
-x - Excludes matching lines.
18
-n - Prefixes lines with a line number. (the Nth match)
19 19 Per Amundsen
-d - *TODO*
20 7 Per Amundsen
-s - Indicates the status window will be used.
21 19 Per Amundsen
-p - *TODO*
22 7 Per Amundsen
-r - Specifies the range of lines n to n2 for filtering.
23 11 Per Amundsen
-b - Strips any [[Formatting_Text|control codes]] when matching text.
24 12 Per Amundsen
-g - Indicates the matchtext is a [[Scripting_Regex|regular expression]].
25 16 Per Amundsen
-z - Retains line colors when filtering between custom windows.
26 7 Per Amundsen
-k - Indicates that you have specified an <alias> as the output instead of a window name. The alias will be called with the result of each filtered line with the form $<alias>($1) where $1 is the matched line.
27
-i - Indicates that you have provided a [dialog id] custom dialog control as the input.
28
-o - Indicates that you have provided a [dialog id] custom dialog control as the output.
29
-c - Clears the output window/file before writing to it.
30
-t - Sorts the output based on [c s], column C using character S as the columns separator.
31
-e - Used with -t, specifies a descending sort.
32
-u - Used with -t, specifies a numeric sort.
33
-l - Filters from the side-listbox in the first window.
34 1 Per Amundsen
-L - Filters to the side-listbox in the second window.
35 20 Per Amundsen
-hN - *TODO*
36 19 Per Amundsen
-H - Halt the running /filter loop if used inside the [alias]. *(AdiIRC only)*
37
-N - Keep the nickcolumn character when filtering from a window. *(AdiIRC only)*
38
-E - Filters from the [[Editbox_Control|Editbox]] up/down history in the first window. *(AdiIRC only)*
39
-D - Filters to the [[Editbox_Control|Editbox]] up/down history in the second window. *(AdiIRC only)*
40 3 Per Amundsen
41
*Parameters*
42
43
[n-n2] - if -r is used, indicates the range of lines to be scanned*
44
[c s] - if -t is used, indicates how to do the sort
45
<infile | dialog id> - if no switch implies a window's name to be use as the infile, you must provide an infile (a window, a file, or a dialog control)
46
<outfile | dialog id | alias> - if no switch implies a window's name to be used as the outfile, you must provide an outfile (a window, a file, a dialog control, or an alias name if -k is used)
47 1 Per Amundsen
[alias] - optional alias called if -a is used
48 6 Per Amundsen
<matchtext> - the expression used for the search, if [[$null]] is used, it matches everything. 
49 3 Per Amundsen
50 10 Per Amundsen
*Example*
51
52 3 Per Amundsen
<pre>
53 8 Per Amundsen
;Filter from the file "c:\my file.txt" to the custom window @mywin.
54 3 Per Amundsen
/filter -fw "c:\my file.txt" @mywin *findthis*
55
56 8 Per Amundsen
;Filter from the custom window @mywin to the file "c:\my file.txt".
57 3 Per Amundsen
filter -wf @mywin "c:\my file.txt" *findthat*
58
59 8 Per Amundsen
;Filter from the status window to the single message window.
60 3 Per Amundsen
/filter -sd *findthis*
61
62 8 Per Amundsen
;Filter from the single message window to the status window.
63 3 Per Amundsen
/filter -ds *findthat*
64
65 8 Per Amundsen
;Filter from the filename @this_is_a_file to the dialog 'dialog', id '1'.
66 1 Per Amundsen
/filter -fo @this_is_a_file dialog 1 *findthis*
67
68 8 Per Amundsen
;Filter from a file and call an alias for each line.
69 1 Per Amundsen
/filter -fk file myalias *findthat*
70
71 8 Per Amundsen
;Filter from a file to a file using regex.
72 1 Per Amundsen
/filter -ffg file1 file2 /regex here/
73 8 Per Amundsen
74 9 Per Amundsen
alias sortexample {
75
  ;Create 2 windows.
76
  /window @asd1
77
  /window @asd2
78 1 Per Amundsen
79 9 Per Amundsen
  ;Add some unordered lines.
80
  aline @asd1 cccc3|cccc2|cccc1
81
  aline @asd1 aaaa3|aaaa2|aaaa1
82
  aline @asd1 bbbb3|bbbb2|bbbb1
83
84
  ;Sort by column "1" where column separator is "|" (ascii char 124). (equal to $gettok(cccc3|cccc2|cccc1, 1, 124))
85
  /filter -twwc 1 124 @asd1 @asd2
86
}
87 3 Per Amundsen
</pre>