13,420
edits
Changes
→INVESTIGATION 2: EXTENDED REGULAR EXPRESSIONS
# Issue the following linux pipeline command to display only whole numbers (with or without a positive or negative sign):<br><span style="color:blue;font-weight:bold;font-family:courier;">grep "^[+-]*[0-9][0-9]*$" numbers2.dat | more</span><br><br>You should notice multiple + or - signs are appearing as well. This occurs since you are searching or one or MORE occurrences of a + or - sign.<br>Using '''extended regular expression''' symbols to specify minimum and maximum repetitions '''{min,max}''' can solve this problem.<br><br>
# Issue the following linux pipeline command (using extended regular expression symbols) to display only whole numbers (with or without a positive or negative sign):<br><span style="color:blue;font-weight:bold;font-family:courier;">grep "^[+-]{0.1}[0-9]{1,}$" numbers2.dat | more</span><br><br>'''NOTE:''' most likely, there were '''NO results'''. This is due to the fact that the '''grep command was NOT issued correctly to use extended regular expression symbols'''. You would need to issue either '''grep -E''' (or more simply) issue the '''egrep''' command. The egrep command works with all regular expression symbols, and should be used in the future instead of the older grep command.<br><br>
# Reissue the above pipeline command using '''egrep''' instead of ''grep'':<br><span style="color:blue;font-weight:bold;font-family:courier;">egrep "^[+-]{0,1}[0-9]{1,}$" numbers2.dat | better-number1.txt | more</span><br><br>You should have noticed that the command worked correctly this time because you used the '''egrep''' command.<br><br>'''NOTE: ''' In extended regular expressions, the '''?''' symbol can be used to represent the '''{0,1}''' repetition symbols <br>and the '''+''' symbol can be used to represent the '''{1,}''' repetition symbols<br><br>
# Reissue the above pipeline command using '''egrep''' instead of ''grep'':<br><span style="color:blue;font-weight:bold;font-family:courier;">egrep "^[+-]?[0-9]+$" numbers2.dat | better-number2.txt | more</span><br><br>You should have seen the same results, but the extended regular expression required less typing.<br><br>
# Issue the following linux pipeline command to display signed, unsigned, whole, and decimal numbers:<br><span style="color:blue;font-weight:bold;font-family:courier;">egrep "^[+-]{0,1}[0-9]{1,}[.]{0,1}[0-9]*$" numbers2.dat | more</span><br><br>You can also use extended regular expression symbols for '''grouping'''. For example, you can search for repetitions of GROUPS of characters<br>(like a word) as opposed to just a single character or a GROUP of numbers as opposed to a single digit.<br><br>