GNU/Linux >> Linux Esercitazione >  >> Linux

Visualizza corrispondenza trovata o non utilizzando awk

Potresti provare a seguire. Nel caso in cui il tuo awk supporti i confini delle parole.

awk '
/\<apple\>/{
  app_found=1
}
/\<mango\>/{
  mango_found=1
}
/\<grapes\>/{
  grapes_found=1
}
END{
  if(app_found && mango_found && grapes_found){
    print "All 3 words found."
  }
  else{
    print "All 3 words are NOT present in whole Input_file."
  }
}
' Input_file

Risposta modificata: il seguente comando è stato testato con l'esempio di input fornito sopra e funziona come desiderato:

awk '
  BEGIN { RS = "§" }
  {print (/apple/ && /mango/&&/grapes/) ? "match found" : "match not found"}
' demo.txt

Ho usato il carattere § come separatore di record perché non esiste un carattere di questo tipo nell'input e perché RS = "\0" non è portatile. Se ritieni che potrebbe accadere che un tale § potrebbe verificarsi nel file di input, puoi utilizzare la soluzione portatile di seguito:

awk '
  { i = i $0 } 
  END { print (i ~ /apple/ && i ~ /mango/ && i ~ /grapes/) ? "match found" : "match not found"}
' demo.txt

Linux
  1. ifrename:comando non trovato

  2. ln:comando non trovato

  3. awk:comando non trovato

  4. Array in Bash non trovato

  5. comando non trovato quando si utilizza sudo

aws-shell:comando non trovato

df:comando non trovato

du:comando non trovato

rm:comando non trovato

mv:comando non trovato

FATAL:Errore modulo non trovato utilizzando modprobe