【问题标题】:How do I copy the beginning of multiple files in Linux?如何在 Linux 中复制多个文件的开头?
【发布时间】:2016-08-14 10:26:46
【问题描述】:

我想在 Ubuntu 中将一堆文件 (*.txt) 从一个目录复制到另一个目录。我想减小它们的大小,所以我使用 head 来获取每个的前 100 行。

我希望新文件保留其原始名称,但位于子目录small/ 中。 我试过了:

head -n 100 *.txt > small/*.txt

但这会创建一个名为*.txt 的文件。 我也试过:

head -n 100 *.txt > small/

但这会产生Is a directory 错误。

这应该很简单吧,但我在 Linux 方面做得很差。 非常感谢任何帮助。

【问题讨论】:

    标签: linux file ubuntu unix-head


    【解决方案1】:

    您必须改为创建一个循环:

    for file in *.txt; do
        head -n 100 "$file" > small/"$file"
    done
    

    这将遍历所有.txt 文件,在所有文件中执行head -n 100 并输出到small/ 目录中的新文件中。

    【讨论】:

      【解决方案2】:

      试试

      for f in *.txt; do
        head -n 100 $f > small/$f
      done
      

      【讨论】:

      • 最好引用$f 以防止文件名包含空格的情况。看我的回答。
      猜你喜欢
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 2012-08-29
      • 1970-01-01
      • 2018-01-04
      • 2021-02-12
      相关资源
      最近更新 更多