Ti faccio un esempio pratico di un filtro di testo che diventa sempre più selettivo. Ti basterà fare qualcosa di simile all'ultimo esempio, definendo correttamente l'espressione regolare da ricercare, per ottenere i risultati desiderati.
codice:
[cacao74@server cacao74]$ grep 80 /etc/services
http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
socks 1080/tcp # socks proxy server
socks 1080/udp # socks proxy server
corbaloc 2809/tcp # CORBA naming service locator
amanda 10080/tcp # amanda backup services
amanda 10080/udp # amanda backup services
omirr 808/tcp omirrd # online mirror
omirr 808/udp omirrd # online mirror
canna 5680/tcp
http-alt 8008/tcp
http-alt 8008/udp
webcache 8080/tcp # WWW caching service
webcache 8080/udp # WWW caching service
tproxy 8081/tcp # Transparent Proxy
tproxy 8081/udp # Transparent Proxy
[cacao74@server cacao74]$ grep -w 80 /etc/services
http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
[cacao74@server cacao74]$ pattern="80"; \
grep -w $pattern /etc/services | \
sed -ne "s/^.*\($pattern\).*$/\1/p"
80
80
Oppure, se la struttura è fissa, conviene usare awk:
codice:
[cacao74@server cacao74]$ awk ' { print $1 "\t" $2 } ' /etc/services
...
tfido 60177/tcp
tfido 60177/udp
fido 60179/tcp
fido 60179/udp
ciao