如何使用awk剪切文本文件

如何使用awk剪切文本文件

我想使用 awk 剪切从我想要的网站上找到的长文本。我会将文本中以xxx开头的部分到以xxx结尾的部分的txt保存在一个文件中

答案1

虽然您的问题极其模糊并且缺乏清晰的输入示例,但 AWK 可以帮助我们根据您指出的一些细节制定通用的解决方案。

如果文本中最多有两个 xxx 实例,并且即使文本中没有换行符,以下代码也应该有效。 awk 是一种面向行的语言,因此我们必须解决单独评估的行。使用 sed 等其他方法可能更适合使用正则表达式来完成这项工作。

BEGIN{printer="false"}
printer=="true" && $0 !~ /xxx/ {print $0}
printer=="false" && $0 ~ /xxx/  {printer="true"; split($0,a,"xxx"); print a[2]; next}
printer=="true" && $0 ~ /xxx/ {split($0,b,"xxx"); print b[1]; printer="false"; exit}

测试一:

xxxLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore
eu fugiat nulla pariatur.xxx Excepteur sint occaecat cupidatat non
proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.

测试b:

xxxLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.xxx Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

相关内容