Chinaunix
标题:
sed求助,匹配两行后插入文件内容
[打印本页]
作者:
gzmud
时间:
2012-07-22 23:56
标题:
sed求助,匹配两行后插入文件内容
本帖最后由 gzmud 于 2012-07-27 22:40 编辑
2楼已回答,谢谢2楼帮忙。
sed求助,匹配两行后插入文件内容
例:
原文:
asdfjkasdf
uioanckja
FLAG
NEXTFLAG
audfaio
待插入(forinsert.txt):
HAHAHA
插入后
asdfjkasdf
uioanckja
FLAG
NEXTFLAG
HAHAHA
audfaio
作者:
yinyuemi
时间:
2012-07-23 00:36
回复
1#
gzmud
sed -e '/FLAG/{n;n;r forinsert.txt' -e '}'
作者:
英语盲学linux
时间:
2012-07-23 08:55
sed '/FLAG/r forinsert.txt' file
复制代码
作者:
blackold
时间:
2012-07-23 09:02
回复
1#
gzmud
如何理解“匹配两行”?
asdfjkasdf
uioanckja
FLAG
foobar
NEXTFLAG
可在此插入?
这也算匹配两行?
作者:
gzmud
时间:
2012-07-27 22:28
回复
4#
blackold
应该是联系的两行:
FLAG
NEXTFLAG
最好能使用正则表达式匹配。
如果是匹配单行的话,难度不大。
谢谢。
作者:
gzmud
时间:
2012-07-27 22:39
回复
2#
yinyuemi
谢谢,这个能用, 改进后能正则表达式匹配
sed -e '/^Flag1/{n;/^Flag2/{r file.toadd' -e '}}' file.foradd
有点不明白 -e 连接两个本来应该连在一起的是怎么回事?
手册上好像没说,能解释一下吗?
作者:
blackold
时间:
2012-07-27 22:40
回复
5#
gzmud
问题描述不清楚。
作者:
gzmud
时间:
2012-07-28 11:11
回复
7#
blackold
应该是连续的两行:
FLAG
NEXTFLAG
后面插入一个文件file.toadd的内容。
二楼的回复已经有一定用处,我根据这个方法修改后的具体实现放到6楼了。
也谢谢你的帮忙
作者:
guogang225
时间:
2012-07-28 23:02
这样更好理解一点:
sed -e '/^FLAG/n' -e '/^NEXTFLAG/r file.toadd' test.txt
作者:
blackold
时间:
2012-07-29 07:41
回复
6#
gzmud
因为 r 命令关系,r会把之后的文本当前文件名。
sed '/^FLAG/{n;/.*FLAG$/r urfile2
quote> }' urfile
asdfjkasdf
uioanckja
FLAG
NEXTFLAG
HAHAHA
audfaio
复制代码
或
sed -e '/^FLAG/{n;/.*FLAG$/r urfile2' -e '}' urfile
复制代码
作者:
blackold
时间:
2012-07-29 08:01
回复
9#
guogang225
这个命令和上面的不同。
作者:
guogang225
时间:
2012-07-29 10:40
回复
11#
blackold
对 r file.toadd' -e'不太明白,大牛能否给解释下,谢谢!
作者:
blackold
时间:
2012-07-29 11:14
本帖最后由 blackold 于 2012-07-29 11:15 编辑
回复
12#
guogang225
-e '/^FLAG/{n;/.*FLAG$/r urfile2' -e '}'
这是两个选项。
你单独看 r urfile2 -e '}' 怎么看得懂?
作者:
guogang225
时间:
2012-07-29 12:12
回复
13#
blackold
明白了,多谢指导
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2