使用sed查找/替换不适用于整个文本文件

时间:2018-07-18 17:20:24

标签: macos sed applescript

我正在尝试在AppleScript中使用sed清理具有多行的文本文件。

源文件(test.txt)

Some random text

<html>
Lorem ipsum dolor sit amet rhoncus
</html>

Even more random text

Applescript

do shell script "sed 's/.*\\(<html.*html>\\).*/\\1/' test.txt"

所需的输出:

<html>
Lorem ipsum dolor sit amet rhoncus
</html>

由于sed仅逐行查找,因此接收到的输出保持不变。有没有办法强迫sed查看整个文件?

2 个答案:

答案 0 :(得分:0)

这可能对您有用(GNU sed):

sed -n '/^<html>/,/^<\/html>/p' file

使用类似seds grep的选项-n关闭自动打印,然后使用一个范围,并且仅打印该范围内的行。

或者:

sed '/^<html>/,/<\/html>/!d' file

答案 1 :(得分:0)

如果您对awk表示满意,那么下面的内容也可以为您提供帮助。

awk '/<html>/,/<\/html>/' Input_file