【发布时间】:2020-02-26 19:36:18
【问题描述】:
我在一个目录中有几个具有相同扩展名的文件 .txt。我想从所有 .txt 文件中删除最后一行。
我做的是
find . -type f -name '*.txt' -exec sed '$d' {} \;
这会为每个 .txt 文件将所需的输出从 sed 打印到终端。
我想要的是修改各自的文件。
【问题讨论】:
-
不,你真的不想那样做。您也许可以使用
sed -i(如果您的 sed 支持这种暴行),但您真的不想这样做。 -
创建一个新目录。使用更改将文件过滤到新目录中的新文件中。尝试使用
sed -i操作大量文件将在大多数情况下起作用。但它会在最糟糕的时刻失败并导致数据丢失。 -
@WilliamPursell 感谢您的回答和警告。它对我有用。干杯!!
标签: unix awk sed find file-processing