【发布时间】:2020-04-25 15:41:36
【问题描述】:
我有很多文件要删除特定的换行符。该行始终以“标题:”开头,因此我尝试了以下命令:
find . -type f -exec sed -i 's/^Title: \n\t*/Title:/g' {} \;
但据我了解,sed 一次只能处理一行,因此上述方法不起作用。有没有办法删除换行符(在多个文件中),但前提是该行以某个字符串开头?
【问题讨论】:
-
行以“Title:”开头还是整个行?在您的尝试中,整行完全由“Title:”组成,后跟一个空格,没有别的。请澄清。此外,您没有提到删除标签,但您的尝试在换行符后查找零个或多个标签;那是怎么回事?如果您需要处理这些选项卡,请在文本问题中说明,而不仅仅是在代码中。
-
还有几个问题:你能有两行以“标题:”开头的连续行吗?整件事中的最后一行可以以“标题:”开头吗?如果是这样,在这两种情况下,所需的处理方式是什么?
-
@mathguy 我简化了上面的正则表达式,使其更易于理解并展示主要思想。这就是为什么我在上面说“开始于”。不,它通常是文件中以“标题”开头的前 10 行之一
标签: regex sed line-breaks