Linux 如何在shell脚本中复制特定文本?
例如: 1.)在文本文件(FileA)中 现在,我想将文本从Header1复制到End1。输出必须仅为:Linux 如何在shell脚本中复制特定文本?,linux,shell,Linux,Shell,例如: 1.)在文本文件(FileA)中 现在,我想将文本从Header1复制到End1。输出必须仅为: Header1 You can do everything as long as you are determined to work hard in your life End1 快速正则表达式以匹配整个第一段: 如果您只想匹配中间层: 或者在shell中,简单地说: grep -zo "Header1.*End1" FileA awk在解析文本文件时非常有用,请
Header1
You can do everything
as long as you are determined
to work hard in your life
End1
快速正则表达式以匹配整个第一段: 如果您只想匹配中间层: 或者在shell中,简单地说:
grep -zo "Header1.*End1" FileA
awk在解析文本文件时非常有用,请尝试:
awk'/Header1/,/End1/{print}文件a
将打印文件的一部分,该部分从标题1开始,以第一次出现的结尾1结束
要将输出保存到文件(在本例中为FileB),请执行以下操作:
awk'/Header1/,/End1/{print}'FileA>FileB
定义coy文本
?或者,如果您只需要第一行:cat FileA | head-n1
我的意思是,在Header1到达End1之前可能有多行。。所以我想知道如何从Header1到End1获取这些字符。然后请更新您的问题,并添加适当的示例。。根据您列出的,这是解决方案。另外,在您的示例中,您没有排除标题1
和结尾1
单词,我不清楚您是否希望这些单词出现在结果中。。在问题中,您显示了预期的输出,但在注释中,您需要它们之间的?编写开始的原因是什么?如果有多个标题/结束行,请求的输出是什么?哇。。聪明的兄弟。这也行得通。非常感谢。
$re = '/Header1.*End1/ms';
$re = '/Header1(.*)End1/ms';
grep -zo "Header1.*End1" FileA