2017-10-19 341 views
0

我的任务是计算我使用wc和管道创建的备份文件中的名称数量,显示前5个名称,然后显示最后5个名称。 我已经测试了'strings'命令来查看文件,但wc只会输出一个永不结束的空白行。Centos7:使用wc读取二进制文件的名称数量

strings /mnt/tape/backup | wc -l 

我不确定我是否应该查找文件的特定部分。 输出应如下;

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 

谢谢。

+0

我已经得到了要显示的名称的数量:strings/mnt/tape/backup | wc -w –

回答

0

命令字符串有太多的额外数据;从中解析信息更加困难。 xfsrestore的选项-tf显示文件内容的列表。

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

为了确定第一和最后5行的名字,我分析的结果-tf INT .txt文件,我可以安全地修改。

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

然后使用VIM查看哪些行号是前5个名称。 $ G下降到文件底部查看最后5个名称。 22-26和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