Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在shell脚本中复制特定文本?_Linux_Shell - Fatal编程技术网

Linux 如何在shell脚本中复制特定文本?

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在解析文本文件时非常有用,请

例如:

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在解析文本文件时非常有用,请尝试:

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