J'ai trouvé étonnamment que lorsque vous faites ceci:
echo "bonjour" | awk -F'|' '{print $1;}'
Vous obtenez:
Bonjour
Comment ne rien retourner étant donné que le séparateur de champ '|' est absent dans la ligne ?
Je fais cela pour extraire les dates au début des lignes de journal, mais certaines lignes ne commencent pas par une date et me posent ensuite ce problème. Merci, je suis assez nouveau dans awk.
2 réponses
Tu peux le faire
echo "hello" | awk -F'|' 'NF>1 {print $1}'
echo "hello|1" | awk -F'|' 'NF>1 {print $1}'
hello
Uniquement lorsque vous avez plus d'un champ, retournez le premier champ
Sur un fichier
cat testing
record1|val1
record2|val2
record3
record4|val4
awk -F'|' 'NF>1 {print $1}' testing
record1
record2
record4
Vous pouvez également utiliser
awk -F'|' '$1==$0'
Si aucun séparateur n'est présent, le champ un contiendra la ligne entière.
Questions connexes
De nouvelles questions
awk
AWK est un langage de programmation interprété conçu pour le traitement de texte et généralement utilisé comme outil d'extraction de données et de rapport. AWK est largement utilisé avec les systèmes Unix.