Mój fikcyjny plik wygląda następująco:
C1 C2 C3
1 a snow
2 b snowman
snow c sowman
Chcę uzyskać wiersz, jeśli snow
w 3 dolarach jest ciąg . Mogę zrobić to tak:
awk '($3=="snow" || $3=="snowman") {print}' dummy_file
Ale powinien być prostszy sposób.
'$3~/snow/'
wystarczyMożliwe również przez wyszukanie podciągu z funkcją index ():
Krótsza wersja:
źródło
awk 'index($3, "snow")' dummy_file
Może to pomoże
http://www.math.utah.edu/docs/info/gawk_5.html
źródło
Wydrukuj linie, w których trzecie pole jest albo tylko
snow
albosnowman
tylko:źródło
GNU sed
Wejście:
..wynik:
źródło
sed
całych słów jest BARDZO ryzykowne . Choć technicznie możliwe, aby to działało niezawodnie, musiałem używać patrzenia do tyłu, patrzenia w przód, a także!?
konstrukcji, gdy chodziło o słowa, których nie powinno się podążać. To na pewno nic dla osób o słabym sercu. (I podatny na błędy, które mogą zająć dużo czasu, aby je znaleźć i naprawić.)