linux - 将最后 n 行复制到新文件,然后从原始文件中删除 n 行

标签 linux bash macos shell

所以我有一个文件,我想将最后 3000 行移动到另一个不同的文件,然后从原始文件创建一个没有最后 3000 行的新文件。

我用的是Mac,我使用的命令如下:

tail -n 3000 fer2017-testing-reduced.arff >> fer2017-training-reduced-3000-more-instances.arff; head -n -3000 fer2017-testing-reduced.arff > fer2017-testing-reduced-3000-less-instances.arff

但是当我运行它时,我得到了错误:

head: illegal line count -- -3000

我不确定哪里出错了,或者这是否是 Mac 的问题?

最佳答案

并非所有版本的 head 都支持负行数。 默认安装在 macOS 上没有。

如果你有coreutils安装(如果您安装了 Homebrew,您可以执行此操作:brew install coreutils)您应该能够使用 ghead -n -3000

关于linux - 将最后 n 行复制到新文件,然后从原始文件中删除 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47575825/

相关文章:

linux - 为Beagleboard构建嵌入式QT5

linux - 如何将Azure中的Linux服务器迁移到AWS?

bash - GNU 与可变序列并行?

macos - WebView 作为响应者

c++ - libopencv_imgcodecs.so.3.2 : cannot open shared object file: No such file or directory

linux - grep 命令试图获取数值

arrays - 将命名数组传递给另一个 bash 脚本

bash - 来自printf的Docker ENV值不起作用

ios - "unexpectedly found nil"超出 viewDidLoad

macos - 'whoami' 在 mac 终端上不工作