2017-10-19 18 views
0

Ma tâche est de compter le nombre de noms dans un fichier de sauvegarde que j'ai fait avec wc et un tuyau, afficher les 5 premiers noms, puis afficher les 5 derniers noms. J'ai testé la commande 'strings' pour voir le fichier, mais nous allons simplement afficher une ligne vide sans fin.Centos7: lire les fichiers binaires, utiliser wc pour le nombre de noms

strings /mnt/tape/backup | wc -l 

Je ne sais pas si je devrais rechercher une section spécifique du fichier. La sortie devrait être comme suit;

109497 

etc/dconf/db/distro.d/locks/10-authconfig-locks 
lib 
lib64 
usr/lib64/libgcc_s-4.8.5-20150702.so.1 
usr/lib64/libgcc_s.so.1 

usr/lib/systemd/system/anaconda.target.wants/anaconda-nm-config.service 
tmp/.X11-unix/X0 
tmp/.esd-1000/socket 
etc/fstab 
root/.cache/abrt/lastnotification 

Merci.

+0

J'ai le nombre de noms à afficher en utilisant: strings/mnt/tape/backup | wc -w –

Répondre

0

Les chaînes de commande ont trop de données en excès; plus difficile d'analyser l'information de. Les options -tf pour xfsrestore affichent une liste du contenu du fichier.

#number of names 
xfsrestore -tf /mnt/tape/backup | wc -w 
110834 

Pour déterminer le 1er et 5 dernières lignes de noms, je parsé le résultat int tf un fichier txt que je pouvais modifier en toute sécurité.

xfsrestore -tf /mnt/tape/backup > test.txt 

Puis utilisé VIM pour voir quels numéros de ligne étaient les 5 premiers noms. $ G passe au bas du fichier pour afficher les 5 derniers noms. 22-26 et 110720-110724.

#display 1st 5 names 
xfsrestore -tf /mnt/tape/backup | sed -n 22,26p 

etc/pam.d/system-auth-ac 
lib64 
usr/lib64/libgcc_s-4.8.5-20150702.so.1 
usr/lib64/libgcc_s.so.1 
usr/share/locale/ast/LC_MESSAGES/grub.mo 

#display last 5 names 
xfsrestore -tf /mnt/tape/backup | sed -n 110720,110724p 

etc/gshadow 
etc/aliases.db 
root/.local/share/recently-used.xbel 
etc/fstab 
etc/group