web-dev-qa-db-fra.com

Comment puis-je ajouter des nouvelles lignes entre lignes imprimées sur la ligne de commande?

Les journaux de messagerie sont incroyablement difficiles à lire. Comment pourrais-je émettre une ligne vierge entre chaque ligne imprimée sur la ligne de commande? Par exemple, disons que je suis grep-ing le journal. De cette façon, plusieurs lignes enveloppées ne sont pas confondues.

31
xenoterracide
sed G 
# option: g G    Copy/append hold space to pattern space.

G n'est pas souvent utilisé, mais est agréable à cette fin. SED maintient deux espaces tampons: "l'espace de motif" et "l'espace de maintien". Les lignes traitées par SED circulent généralement dans l'espace motif, car diverses commandes fonctionnent sur son contenu (s///, p, etc.); L'espace de maintien commence vide et n'est utilisé que par certaines commandes.

La commande G ajoute une nouvelle ligne et le contenu de l'espace de maintien de l'espace de motif. Le programme ci-dessus SED ne met rien dans l'espace de maintien, alors G ajoute efficacement une nouvelle ligne à chaque ligne traitée.

53
Chris Johnsen

Utilisez AWK pour ajouter une nouvelle ligne supplémentaire. Cela vous permet également de filtrer des choses que vous ne voulez pas.

awk '{print $0,"\n"}' | less
9
KeithB

Utilisez SED et remplacez la ligne entière par elle-même plus un personnage supplémentaire de nouvelle ligne:

grep foo /var/log/maillog | sed -e "s/^.*$/&1\n/"
5
fschmitt

Est-ce ce que vous êtes après?

grep SPAM mail.log | while read -r line; do echo; echo $line; done

3
Nifle

Tuyau | Toute sortie à:

sed G

Exemple:

ls | sed G

Si tu man sed tu verras

G APPEND Un personnage de nouvelle ligne suivi du contenu de l'espace de maintien de l'espace motif.

0
jasonleonhard

Si c'est pour plus que d'avoir l'air de regarder, je préfère les envoyer à un fichier texte et ouvrir avec un éditeur de texte afin que vous puissiez définir les lignes pour envelopper ou non et effectuer des recherches facilement ... et supprimez les lignes indésirables et ainsi de suite sans avoir à taper beaucoup de commandes.

cat file.log > log.txt et gedit log.txt ou un éditeur de terminal comme Nano

Éditeur cp file.log log.txt ce qui est bien sûr plus facile et plus rapide ... Merci à Keithb Commentaire

0
laurent