代码之家  ›  专栏  ›  技术社区  ›  Fakhryan Albar

当我在sed中设置100.000距离时,第一次使用命令sed和“参数列表太长”进行压缩时出现tar错误

  •  0
  • Fakhryan Albar  · 技术社区  · 7 年前

    文件中有200.000行未找到\u test1.txt

    我按照下面的方式运行命令,但第一个结果出错

    tar czvf /home/bukanadmin/test.tar.gz -T $(sed -n 1,10p /home/bukanadmin/not_found_test1.txt)
    

    这是我所得到的错误

    tar:     RT @StCecilias_PE\: Sara McBay y10 finished an impressive 4th in the JG 75m hurdles final. Sara only took up the hurdles a few months ago! #dedicated #workshard: Cannot stat: No such file or directory
    tar:     By stcecilias_re on 11-May-2018 17\:49: Cannot stat: No such file or directory
    tar:     at http\://twitter.com/stcecilias_re/statuses/994892363523874816: Cannot stat: No such file or directory
    tar:     : Cannot stat: No such file or directory
    2018/05/2018-05-11/TWITTER.DATA_POST/abfeda55a6f5b9ad1622f5484c7452f1.txt
    2018/05/2018-05-11/TWITTER.DATA_POST/73a38258c9e91110065c3973b90fc841.txt
    2018/05/2018-05-11/TWITTER.DATA_POST/240ae384d7e1e1d2f5f4fa1f70e7f0e8.txt
    2018/05/2018-05-11/TWITTER.DATA_POST/e5a6f6c8bccc3c1d0ed9f11eb543c0a2.txt
    2018/05/2018-05-11/TWITTER.DATA_POST/23a051f72192affbe2e57e91df62e372.txt
    2018/05/2018-05-11/TWITTER.DATA_POST/f629b60d212a04dc4d42695f348446f3.txt
    2018/05/2018-05-11/TWITTER.DATA_POST/c7037ea6e3912496fc546b7135a763f3.txt
    2018/05/2018-05-11/TWITTER.DATA_POST/93675eeb45dbd6385cbf37b0d9d39341.txt
    2018/05/2018-05-11/TWITTER.DATA_POST/ded62f41db4a069bd4fd36e83661cdd2.txt
    tar: Exiting with failure status due to previous errors
    

    当我移除命令tar上的sed时,我没有问题

    tar czvf /home/bukanadmin/test.tar.gz -T /home/bukanadmin/not_found_test1.txt
    

    当我在类似tar的命令头中尝试另一个命令时,我也遇到了同样的问题。

    有人能帮我解释一下吗

    **新版本:)** 最后一期已经完成

    czvf /home/bukanadmin/test.tar.gz $(sed -n 1,10p /home/bukanadmin/not_found_test1.txt)
    

    现在,当我将代码更改为

    czvf /home/bukanadmin/test.tar.gz $(sed -n 100000,200000p /home/bukanadmin/not_found_test1.txt)
    

    这是错误解释 -bash:/usr/bin/tar:参数列表太长

    1 回复  |  直到 7 年前
        1
  •  0
  •   l'L'l    7 年前

    使用 -T 就是要读取整个文件,所以只抓取前十行是行不通的。

    你可能会消除 -T 总之,简单地做:

    tar czvf file.tar.gz $( sed -n 1,10p file )
    

    …或使用 head

    tar czvf file.tar.gz $( head -10 file )