首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >awk & sed拆分文件

awk & sed拆分文件
EN

Stack Overflow用户
提问于 2013-10-29 05:42:39
回答 7查看 811关注 0票数 4

如果我有一个文件test.txt:

代码语言:javascript
复制
example 1 content 2013-3-8:
hello java
example 2 content 2013-4-9:
hello c

如何使用awk或sed将test.txt分离为两个文件

test1

代码语言:javascript
复制
hello java

test2

代码语言:javascript
复制
hello c

我使用以下命令:

代码语言:javascript
复制
awk '/example/{i++}{print > "test"i}' test.txt

但是它仍然是第一行(例如xxx),我可以在awk中的print中添加一些片段来删除第一行吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-10-29 05:56:47

你几乎拥有它:

代码语言:javascript
复制
awk '/^example/ { i++; next } { print >"test"i}'

next使awk跳过其余的语句。

票数 6
EN

Stack Overflow用户

发布于 2013-10-29 05:47:14

您可以使用getline跳过第一行。以下内容应提供所需的输出:

代码语言:javascript
复制
awk '/example/{getline; i++}{print > "test"i}' test.txt
票数 2
EN

Stack Overflow用户

发布于 2013-10-29 08:04:49

用sed做这件事的一些奇怪方法:

代码语言:javascript
复制
sh <<< $(sed '/example/{N;s/\n//;s/example \([0-9]*\).*:\(.*\)/echo "\2" >> test\1;/}' input)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19650580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档