Sed删除每个结尾的文件的第一行都有.jsx扩展名

时间:2015-10-02 18:54:42

标签: linux shell sed

所以在React 0.12中,不再需要在所有jsx文件的顶部都有/** @jsx React.DOM */。我看到的库实际上会在看到每个jsx文件顶部存在的/** @jsx React.DOM */行时抛出错误。

所以我想知道是否有一种快速方法使用sed从目录中的每个文件中删除此行。

我应该删除第1行,还是有办法让我进行模式匹配,并验证它是否位于顶部?如何以递归方式将其从目录中的所有文件及其子目录中删除?

谢谢!

1 个答案:

答案 0 :(得分:4)

是的,在find的帮助下,这很简单。以下命令排列所有 * .jsx 文件的第一行:

find /path/to/files -name '*.jsx' -exec sed -i '1d' {} \;

此命令删除包含该特定注释的行:

find /path/to/files -name '*.jsx' -exec sed -i '/^\/\*\* @jsx React\.DOM \*\/$/d' {} \;

在发出命令之前备份文件,因为它们会修改文件。比抱歉更安全。