J'ai un simple fichier journal qui est très salissant et j'ai besoin qu'il soit soigné. Le fichier contient des en-têtes de journaux, mais ils sont tous mélangés, donc je dois trier les fichiers journaux en fonction des en-têtes de journaux. Il n'y a pas de nombre de lignes statiques, ce qui signifie qu'il n'y a pas de nombre fixe de lignes pour chaque en-tête du fichier texte. Et j'utilise AWK pour trier les en-têtes.Comment Awk Paragraphe dans un fichier texte complexe?
Les fichiers journaux ressemble à ceci:
Car LogFile Header
<text>
<text>
<text>
Car LogFile Header
<text>
Car LogFile Header
<and so forth>
Il serait émis en sortie comme ceci:
Car LogFile Header
<text>
<text>
<text>
-------------------
Car Logfile Header
<text>
<text>
Je l'ai fait jusqu'à/rechercher un code simple, mais il ne semble pas fonctionner . Quelqu'un peut-il me guider s'il vous plaît? Merci!
#!/bin/bash
# usage: pargrep <infile> <searchpattern>
inFile="$1"
searchString="$2"
awk '
BEGIN {
FS="\n"
RS="-----"
}
/'"$searchString"'/ { print }
' ${inFile}
"ça ne semble pas fonctionner" n'est pas très instructif. En quoi son comportement diffère-t-il de ce que vous attendez et quels messages d'erreur recevez-vous? –
Il donne une erreur de "awk: cmd., Ligne: 6: //root/Desktop/Default.log/ {print} awk: cmd., Ligne: 6:^erreur de syntaxe awk: cmd., Ligne: 6://root/Desktop/Default.log/ {print} awk: cmd line: 6:^une expression rationnelle non terminée " – JavaNoob
ce serait bien si vous pouviez nous échantillonner l'entrée et la sortie attendue. Merci – dogbane