首页 > 解决方案 > 打印 tar.gz 中每个文件的第一行而不提取

问题描述

我正在寻找一个命令,以便打印 tar.gz 存档中包含的每个文件的第一行,而不提取它。

例子:

tar -ztvf MyArchive.tar.gz
-rw-r--r-- root/root 3732541752 2020-04-04 03:24 FILE1.TXT
-rw-r--r-- root/root   90493394 2020-04-04 03:16 FILE2.TXT
-rw-r--r-- root/root  103294570 2020-04-03 21:06 FILE3.TXT
-rw-r--r-- root/root   16865694 2020-04-03 21:07 FILE4.TXT
-rw-r--r-- root/root 13176227988 2020-04-03 23:36 FILE5.TXT

我需要在 tar.gz 中打印每个 FILE*.TXT 的第一行

我怎样才能做到这一点?

标签: linuxbashgzip

解决方案


您可以使用 tar 和 for 循环命令来实现。

for i in $(tar -ztvf MyArchive.tar.gz|grep -i file|awk '{print $NF}')

tar xfO MyArchive.tar.gz $i|head -1

完毕

使用“tar xfO MyArchive.tar.gz 文件名”读取 tar.gz 中的文件内容


推荐阅读