Bra inlägg. Ett par anmärkningar bara:
1. sed tar som sista argument ett filnamn som processas, finns alltså ingen egentlig anledning att göra en "cat filnamn | sed 'din_regex_här'" utan man kan förenkla det till "sed 'din_regex_här' filnamn" i stället. Man kan också ange en lista av filer på det sättet. Sparar ett par tangenttryckningar iaf
2. Punkt fungerar som wildcard i en regex. En punkt matchar alltså vilket tecken som helst, vilket gör att din regex även glufsar i sig annat än IP-nummer. Prova med "172406021" så får du se. Vill du matcha en punkt måste den escapas med backslash, t.ex. "172\.0\.0\.1"
Sedan tycker jag faktiskt att man ofta kan kasta ut sed när Ruby och Perl faktiskt båda har den funktionaliteten inbakad, hela sh+sed+awk-soppan känns lite för mycket 80-tal för min smak (fast det är ju subjektivt såklart). Brukar själv köra med tumregeln att när ens shellscript börjar behöva en massa anrop till sed är det dags att sätta sig ner och fundera igenom om det egentligen är så lyckat att utföra den aktuella uppgiften med just shellscript. Men som alltid finns det ju specialfall där det faktiskt är motiverat, även om de IMHO inte är så många.