awk match parola intera

Voglio usare awk per abbinare parole intere dal file di text. Includendo parole limitate da caratteri non alfanumbersci.

Per esempio –

string da cercare – ABC

File sorgente –

 HHHABCCCCH HHH ABC HH(ABC)ASDAASD HH,ABC-ASASDASD 

Risultato –

 HHH ABC HH(ABC)ASDAASD HH,ABC-ASASDASD 

Se si desidera passare "ABC" come una variabile invece di codificarlo, utilizzare l'operatore corrispondente:

 awk -v word=ABC '$0 ~ "[^[:alpha:]]" word "[^[:alpha:]]"' 

Con il gawk (altri awks too?) È ansible utilizzare \< e \> per indicare i confini delle parole, where una parola è una sequenza di lettere, cifre e sottolineatura (credo), quindi questo functionrà per il tuo esempio:

 awk '/\<ABC\>' 

Ha capito che stava avendo problemi a causa di un typo

 awk '/[^[:alpha:]]ABC[^[:alpha:]]/'