regex - 基于空行的新文本文件

标签 regex linux

我有一个如下所示的文本文件:

6789 Here is a bunch of text

4565 More text......................................................
.....etc

我需要提取第一个单词(数字)并创建一个包含以下所有文本的新文件,将第一个单词作为文件名直到一个空行,然后重复创建许多文本文件。

最佳答案

awk 行可以做到:

awk 'BEGIN{RS=""} {fn=$1;gsub(/^[0-9]+\s/,"");print $0 > (fn".txt")}' yourFile

测试:

kent$  l 
total 0
(no file in current dir)

kent$  echo "6789 Here is a bunch of text

4565 More text......................................................
.....etc"|awk 'BEGIN{RS=""} {fn=$1;gsub(/^[0-9]+\s/,"");print $0 > (fn".txt")}'

kent$  ls
4565.txt  6789.txt

and, the contents are:

kent$  head *.txt
==> 4565.txt <==
More text......................................................
.....etc

==> 6789.txt <==
Here is a bunch of text

关于regex - 基于空行的新文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8056519/

相关文章:

r - R 中非 ASCII 字符的正向后视

php - 如果从 php mail() 函数发送的电子邮件返回,它位于 linux 中的什么位置?

c - 使用内核模块锁定内部系统调用

linux - Circle CI 如何部署到 ssh - 错误无法建立真实性

regex - 匹配除特定短语之外的所有内容

php - 正则表达式匹配除单个数字以外的所有内容

regex - Vim 正则表达式中的\& 模式是什么

java - 用于解析 java 枚举的正则表达式

django - pip 找不到满足要求的版本 django==2.2.1

R 在 Ubuntu Linux 中从剪贴板复制