linux - 打印 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 的第一行
我怎样才能做到这一点?
解决方案
您可以使用 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 中的文件内容
推荐阅读
- sql - 在条件下获取两个表中的重合行和非重合行
- javascript - IOS:当我点击推送通知时,如何打开 Ionic 应用程序的特定页面?
- docker-compose - 使用 Docker Compose 为 Omnisus Gitlab 的自定义 HTTPS 端口重定向 HTTP 到 HTTPS
- laravel - Laravel 使用 .htaccess 重定向到 HTTPS
- ruby - Ruby 数据格式化
- azure - 在 Azure 数据工厂 V2 中使用参数代替链接服务名称
- createjs - 在补间中创建包含 mp4 视频的 js 影片剪辑对象不适用于 gotoAndPlay 调用
- prolog - (Prolog)列表中满足目标的第一个解决方案
- java - 创建单个类以在java中使用?
- c# - 当用户使用 Identity 2.0 登录时覆盖 CheckPasswordAsync