var cat = [ "Line-based", "Patterns" ];
var titles = [
[   [ "Get lines containing <i>PAT<sub>1</sub></i> AND <i>PAT<sub>2</sub></i> of a file.","p.20001116a" ],
   [ "Get lines containing <i>PAT<sub>1</sub></i> OR <i>PAT<sub>2</sub></i> of a file.","p.20001117a" ],
   [ "Get lines containing <i>PAT<sub>1</sub></i> but no <i>PAT<sub>2</sub></i> of a file.","p.20000929a" ],
   [ "Insert a separating line after a line beginning with 'abc' and immediately followed by a line beginning with 'xyz'.","p.20050729a" ],
   [ "Perform operations on lines starting from the fist line containing <i>PAT<sub>1</sub></i> till the last one containing <i>PAT<sub>2</sub></i>.","p.20080124a" ]],
[   [ "Delete two consecutive lines if the first one contains <i>PAT<sub>1</sub></i>1, and the second one contains <i>PAT<sub>2</sub></i>. ","p.20071231a" ],
   [ "Remove almost identical lines. ","p.20080121a" ],
   [ "For consecutive `almost identical' lines, print only the first one.","p.20081128a" ],
   [ "Remove consecutive duplicate lines.","p.20080221a" ],
   [ "Retrieve the first line among consecutive lines of the same key.","p.20080825a" ]],
[   [ "Extract 'Received:' headers from a mailbox.","p.20040516a" ],
   [ "Add a separator after each header field of a mail.","p.20090806a" ],
   [ "Extract matched headers of a mail.","p.20091225a" ],
   [ "Gather information of a mail transaction.","p.20100126a" ],
   [ "Find qualified letters in a `mailq' output.","p.20101224a" ]],
[   [ "Get every line containing <i>PAT</i> and the adjacent one preceding it.","p.20080209a" ],
   [ "Get every line containing <i>PAT</i>, the preceding, and the following ones.","p.20090331a" ],
   [ "Get lines containing <i>PAT</i> and 3 consecutive lines following each of them.","p.20001115a" ],
   [ "Get every line which is adjacent to and precedes a line containing <i>PAT</i>.","p.20010213a" ],
   [ "Get the line following a line containing <i>PAT</i>.","p.20040217a" ],
   [ "Delete every line containing PAT and the next three lines.","p.20090730a" ]],
[   [ "Get the <i>N</i>-th matched line.","p.20070823a" ],
   [ "Get the <i>N</i>-th matched line.(another version)","p.20070903a" ],
   [ "Get the <i>N<sub>1</sub></i>-th, <i>N<sub>2</sub></i>-th, <i>N<sub>3</sub></i>-th, ..., matched lines.","p.20100430a" ],
   [ "Delete the <i>N<sub>1</sub></i>-th, <i>N<sub>2</sub></i>-th, <i>N<sub>3</sub></i>-th, ..., matched lines.","p.20101227a" ]],
[   [ "Get the FIRST line containing <i>PAT</i>","p.20000929e" ],
   [ "Get lines starting from the FIRST one containing <i>PAT</i> till the end of file.","p.20001018a" ],
   [ "Delete the FIRST line containing <i>PAT</i> of a file.","p.20000929h" ],
   [ "Delete up to, but not including, the first line containing <i>PAT</i>.","p.20010217a" ]],
[   [ "Get the LAST line containing <i>PAT</i> of a file.","p.20001004a" ],
   [ "Get the lines from the LAST one containing <i>PAT</i> of a file.","p.20060622a" ],
   [ "Get the lines after the LAST one containing <i>PAT</i> of a file.","p.20060628a" ],
   [ "Delete the LAST line containing <i>PAT</i> of a file.","p.20080806a" ],
   [ "Delete the lines from the LAST line containing <i>PAT</i> till the end of file.","p.20060719a" ],
   [ "Among lines containing PAT, delete all but the last one of them. ","p.20090728a" ],
   [ "Delete the lines till the LAST one containing <i>PAT</i>.","p.20070905a" ],
   [ "Perform a specific operation on lines starting from the beginning of a file till the LAST line containing <i>PAT</i>.","p.20070118a" ],
   [ "Among lines with the same key, print the last one.","p.20090803a" ]],
[   [ "If a line does not end with a dot ('.'), join every following line till one ending with a dot.","p.20010226a" ],
   [ "A case study on joining lines.","p.20040929a" ],
   [ "Join every three non-blank lines to one line, separate them by '|'s.","p.20040212a" ],
   [ "Append a line to the previous one if it does not begin with some tag.","p.20060913a" ],
   [ "Join together all lines except the last one.","p.20080812a" ],
   [ "Prepend a block to a file if it does not exist.","p.20090714b" ]],
[   [ "Split lines that are longer than 25 characters.","p.20010622a" ],
   [ "Move lines containing some string to the end of a file.","p.20021204a" ],
   [ "Fix newlines at wrong positions.","p.20040304a" ],
   [ "Add a separator line to the end of every 'block'.","p.20021004a" ],
   [ "Append a message after very 'block'.","p.20040910a" ],
   [ "If a non-blank line is not followed by a blank line, append a &lt;br&gt; tag to the end of it.","p.20060522a" ],
   [ "Show complete records only.","p.20070612a" ],
   [ "Substitute the section specified in File<sub>1</sub> for the same section in File<sub>2</sub>.","p.20080818a" ]],
[   [ "List records of File<sub>2</sub> whose keys are not listed in File<sub>1</sub>. ","p.20080829a" ],
   [ "Update entries of File<sub>2</sub> according to File<sub>1</sub>. ","p.20090529a" ],
   [ "Edit the second file according the words and replacements specified in the first one.","p.20100531a" ]],
[   [ "Get the longest line of a file.","p.20001011a" ],
   [ "Retrieve IPs and interface names from the output of /sbin/ifconfig.","p.20030221a" ],
   [ "Comment out uncommented lines.","p.20040227a" ],
   [ "Prepend the contents of some file before every matching line of a file.","p.20051018a" ],
   [ "Print the last line of each group consisting of lines with the same tag.","p.20030128a" ],
   [ "Replace every instance of 'KEY=....' of a file with the first one.","p.20040608a" ],
   [ "Print `ODD' if there are odd number of lines containing <i>PAT</i> in the datafile.","p.20080623a" ],
   [ "Convert a file listing to FTP commands.","p.20081223a" ],
   [ "Reformat a datafile.","p.20090304a" ],
   [ "Delete shell-style comment lines and empty ones.","p.20090326a" ]]];
var subcat = [ "Two Patterns", "Consecutive Lines", "Mail Issues", "Lines Containing <i>PAT</i> and Adjacent Ones.", "<i>N</i>-th Line Containing <i>PAT</i>", "First Line Containing <i>PAT</i>", "Last Line Containing <i>PAT</i>", "Append/Join Conditionally", "Reformat a File", "Two-file Issues", "Misc" ];

