gpt4 book ai didi

Linux 脚本 : how to split a text into different files with match pattern

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:51 24 4
gpt4 key购买 nike

例如:我有如下文字:

Jul 11 xxxx  xxxx start xxxxx
....
....
....
Jul 11 xxxx xxxx stop xxxxx
Jul 11 xxxx xxxx start xxxxx
....
....
....
Jul 11 xxxx xxxx stop xxxxx
....

现在我想根据“开始”和“停止”将上面的文本文件拆分成不同的文件,比如

/***text1.txt******/
Jul 11 xxxx xxxx start xxxxx
....
....
....
Jul 11 xxxx xxxx stop xxxxx

/***text2.txt******/
Jul 11 xxxx xxxx start xxxxx
....
....
....
Jul 11 xxxx xxxx stop xxxxx

我该怎么做?谢谢。

最佳答案

这可以做到:

$ awk '{if ($0 ~ /start/) a++} {print >> "file"a}' file

说明

  • {if ($0 ~ /start/) a++}查找包含单词 start 的行.如果是这样,增加变量 a ,即 0默认情况下。
  • {print >> "file"}'版画 $0 (即整行)到同一目录中名为"file"的文件。
  • {print >> "file"a}将该行打印到一个名为"file"+变量a的文件中, 恰好是 0, 1, 2... 所以它打印到 file1 , file2 ...

测试

$ cat a
Jul 11 xxxx xxxx start xxxxx
....
....
....
Jul 11 xxxx xxxx stop xxxxx
Jul 11 xxxx xxxx start xxxxx
here begins 2nd file
....
....
....
Jul 11 xxxx xxxx stop xxxxx
$ awk '{if ($0 ~ /start/) {a++}} {print >> "file"a}' a
$ cat file1
Jul 11 xxxx xxxx start xxxxx
....
....
....
Jul 11 xxxx xxxx stop xxxxx
$ cat file2
Jul 11 xxxx xxxx start xxxxx
here begins 2nd file
....
....
....
Jul 11 xxxx xxxx stop xxxxx

关于Linux 脚本 : how to split a text into different files with match pattern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17595234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com