这个, 我不晓得是哪个术语对应, 所以加了个引号.
问题有2个,
1) 在一个文件中, 如何在定位的"abcxyz"后, 如何显示其下一行的内容. 若是有很多个, 如何?
2) 假设搜索的关键字在第n行, 如何同时显示第n-1, n, n+1行的内容
thx
"错行读取"
- yjcong
- 帖子: 2470
- 注册时间: 2006-02-28 3:11
Re: "错行读取"
2) grep -A 3 -B 5 abcxyz filename
前后(after)3行, 前(before)5行
grep -C 2 abcxyz filename
前后2行
前后(after)3行, 前(before)5行
grep -C 2 abcxyz filename
前后2行
一梦三年,
松风依旧,
萝月何曾老.
灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
松风依旧,
萝月何曾老.
灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
- naturalaw
- 帖子: 1360
- 注册时间: 2011-09-06 22:04
Re: "错行读取"
只剩下问题1了吗? 请提供测试用例。 
keyword 是foo
恕我windows路径。
[python]#!/usr/bin/env python3
import re
def fun(c):
for i in c:
if re.findall('foo',i):
try:
print(c[c.index(i)+1])
c[c.index(i)] += 'someword'
except:
print("keyword is in the last line")
fun(open('d:/1').readlines())[/python]

keyword 是foo
恕我windows路径。
最近用python多。如果你唯一的工具是把锤子,你往往就会把一切问题都看成钉子
foo
akjkdjkejwl
rkewjlkrjwelk
foo
fewkjk1kl1l2l1212l1
fewkjrkewjn mnfmenw
ewkjrkjwl
barfoofwerjwekjr
barofwerjwekj
[python]#!/usr/bin/env python3
import re
def fun(c):
for i in c:
if re.findall('foo',i):
try:
print(c[c.index(i)+1])
c[c.index(i)] += 'someword'
except:
print("keyword is in the last line")
fun(open('d:/1').readlines())[/python]
上次由 naturalaw 在 2013-06-07 12:50,总共编辑 1 次。
- 永恒之法则
- The eternal law
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: "错行读取"
[c.append(i) for i in f.readlines()] 这行是在干什么呢……naturalaw 写了: [python]#!/usr/bin/env python3
import re
def fun(c):
for i in c:
if re.findall('foo',i):
try:
print(c[c.index(i)+1])
c[c.index(i)] += 'someword'
except:
print("keyword is in the last line")
f=open('d:/1')
c=[]
[c.append(i) for i in f.readlines()]
fun(c)[/python]
为什么不 c = f.readlines() 呢?
PS: 那谁博客的评论系统还没配置好。
- naturalaw
- 帖子: 1360
- 注册时间: 2011-09-06 22:04
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: "错行读取"
第一个问题
代码: 全选
sed -n '/abcxyz/{n;p}'
- yjcong
- 帖子: 2470
- 注册时间: 2006-02-28 3:11
Re: "错行读取"
谢谢LS各位, 其实, 第1个问题也包含在第2个之内
grep -A 1 abcxzy filename
grep -A 1 abcxzy filename
一梦三年,
松风依旧,
萝月何曾老.
灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
松风依旧,
萝月何曾老.
灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.