If you want to direct the learning, though, I'd recommend figuring out how to do something with grep, e.g., then do the same with sed, awk, cut, etc.
For example:
grep myuserid /etc/passwd
sed -n '/myuserid/p' /etc/passwd
awk '/myuserid/ { print }
etc.
Then make it more interesting: repeat those with 'grep -I MYUSERID /etc/passwd'.
Then make it even more interesting: print the 4th field from each matching line. (Hint: man cut.) Come up with at least two or three different ways of doing this with regex's, then make those regex's as compact as possible.
Then make it a lot more interesting: print the two lines before and the three lines after each pattern.
Once you do this for a while, you will get used to thinking in terms of filters and regex and things will start to come more naturally for you.
Also consider doing all of those exercises from within vim, use :g... commands (or any other alternative you can think of).
I used this a great deal, when I first started out on serious UNIX tasks (1996+)