【发布时间】:2021-11-24 23:05:53
【问题描述】:
我有一个包含数千个 txt 文件的目录。我需要修剪文件,以便删除每个文件中第 25 行之后的每一行。我使用的是 Mac OSX 10.14.6。
我该怎么做?
我做过的尝试
经过研究,我认为 Mac OSX 终端中的 SED 是最好的方法。
This page 给出了如何在 SED 中定位行的示例。所以我认为我需要的 SED 命令是:
sed '1,25!d'
这告诉 SED 删除除第 1 到 25 行之外的所有内容。当我在单个文件上尝试时,它可以工作。
我现在需要扩展它,以便它在文件目录上工作。
This answer 说我可以使用 SED -n 和 -i 标志来做到这一点(它还提到了在 OSX 上不起作用的 -s 标志)。
所以我觉得代码应该是这样的:
sed -n -i '1,25!d' *.txt
但是当我尝试时,我得到了这个错误:
sed: 1: "filename": command a expects \ followed by text
我尝试了其他变体,但似乎都不起作用。
【问题讨论】: