【发布时间】:2012-02-15 09:26:20
【问题描述】:
所以我有一个 txt 文件,其中每一行都是一个文件路径,我想:
- 阅读此 txt 文件(逐行)。
- 删除所有不以
,-,.txt结尾的行 - 在其余行中,删除从最后一个
/到,-,.txt的所有内容。 - 将输出写入新的 txt。
如何使用 sed 来做到这一点?
输入:
/a/b1/
/a/b1/car
/a/b1/car/bil/
/a/b1/car/bil/,-,.txt
/a/b2/
/a/b2/flower
/a/b2/flower/bil/
/a/b2/flower/bil/,-,.txt
/a/b2/
/a/b2/boat
/a/b2/boat/baat/
/a/b2/boat/baat/abc,-,.txt
第二步:
/a/b1/car/bil/,-,.txt
/a/b2/flower/bil/,-,.txt
/a/b2/boat/baat/abc,-,.txt
第三步/期望的输出:
/a/b1/car/bil/
/a/b2/flower/bil/
/a/b2/boat/baat/
【问题讨论】:
-
一个简短的测试样本源就可以了。否则,每个人都必须自己生产。
-
sed是一个流编辑器。它不会将整个文件读入内存;它(通常)一次读取和处理一行。这应该正是您所需要的(忽略#1)。