【问题标题】:Print the first line of each file inside a tar.gz without extracting打印 tar.gz 中每个文件的第一行而不提取
【发布时间】:2020-04-27 12:36:41
【问题描述】:

我正在寻找一个命令来打印包含在 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 的第一行

我怎样才能做到这一点?

【问题讨论】:

    标签: linux bash gzip


    【解决方案1】:

    您可以使用 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 filename”读取tar.gz里面的文件内容

    【讨论】:

      【解决方案2】:

      试试这个:

      tar zxf MyArchive.tar.gz --to-command="head -n 1"
      

      此命令单独获取 tar 中的文件并将它们提供给命令“head -n 1”。

      【讨论】:

      • 你能解释一下为什么这能解决问题吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 2013-10-09
      • 1970-01-01
      • 2021-12-05
      • 2020-06-05
      相关资源
      最近更新 更多