快速搜索
[登录]
[注册]
凌阳教育
技术论坛
技术博客
标签
会员
帮助
论坛
»
嵌入式Linux技术区
»
嵌入式工具
»
shell学习——从文件中抽取字段
嵌入式Linux技术区
嵌入式Linux综合
嵌入式GUI开发
嵌入式驱动开发
嵌入式工具
嵌入式硬件开发
嵌入式应用
综合技术区
单片机技术及应用
C/C++/VC++专区
课程设计+电子竞赛+毕业设计
人在职场
嵌入式招聘信息
我要面试
人在职场
职业规划和测评
休闲专区
朝酒晚舞
热点话题
网站事务
关于培训课程的问题、建议、咨询、网站公告
shell学习——从文件中抽取字段
[
1982
查看 /
6
回复 ]
返回列表
发送短消息
UID
33813
精华
1
威望
2
金钱
15.25 元
查看公共资料
搜索帖子
zhanchiaoxiang
组别
注册会员
性别
积分
59
帖子
52
注册时间
2009-11-19
个人空间
相册
zhanchiaoxiang
2009-11-19 16:03
|
只看楼主
1
#
字体大小:
t
T
有一个文件,如下,以空格分成3段(每段是7行),我现在想这样从里面抽取数据,如果某段中含有字段“REPORT COUNT= 22985”(如果含有的话,肯定是在这段的第6行中含有),则把这一段数据都放到一个新文件中,该如何实现呢?
有一个文件,如下,以空格分成3段(每段是7行),我现在想这样从里面抽取数据,如果某段中含有字段“REPORT COUNT= 22985”(如果含有的话,肯定是在这段的第6行中含有),则把这一段数据都放到一个新文件中,该如何实现呢??
代码:
YTCMSC01 AMA112 MAR07 15:19:01 2900 INFO LONG DURATION CALL
ORIG= CDMA_CPS 000000
TERM=
CLG NO= 13355356234
CLD NO= $
CONNECT TIME= 066/1426170 REPORT COUNT= 22986
ANSWERED= Y
YTCMSC01 AMA112 MAR07 15:19:01 2800 INFO LONG DURATION CALL
ORIG= CKT YTIGW1TRKE 477
TERM= CKT SB0014VOICE 121
CLG NO= 13854829695
CLD NO= 13361321136
CONNECT TIME= 066/1435147 REPORT COUNT= 22985
ANSWERED= Y
YTCMSC01 AMA112 MAR07 15:19:01 2700 INFO LONG DURATION CALL
ORIG= CDMA_CPS 000000
TERM=
CLG NO= 13356916813
CLD NO= $
CONNECT TIME= 066/0849074 REPORT COUNT= 22984
ANSWERED= Y
解决办法:
1.grep 'REPORT COUNT= 22985' -B5 -C1 youfile >newfile
2.cat $scr_file|awk 'BEGIN{FS=" ";RS=""}{$0~/REPORT COUNT= 22985/ &print $0>'$dest_file'}'
3.awk 'BEGIN{RS=""}/REPORT COUNT= 22985/{print $0>"newfile"}' file
4.awk ' { for (i=7;i>0;i--){a
=a[i-1]};a[1]=$0;if (a[2]~/REPORT COUNT= 22986/){for (i=7;i>0;i--){print a
}}}' yourfile >newfile
zhanchiaoxiang 最后编辑于 2009-11-19 16:07:04
TOP
发送短消息
UID
33813
精华
1
威望
2
金钱
15.25 元
查看公共资料
搜索帖子
zhanchiaoxiang
组别
注册会员
性别
积分
59
帖子
52
注册时间
2009-11-19
个人空间
相册
zhanchiaoxiang
2009-11-19 16:04
|
只看楼主
2
#
字体大小:
t
T
如何删除最后一行
删除文件最后一行
1. tail -n 1 file
2. tail -1 filename
3. sed -n '$p' filename
4. "awk
'END {print}'
file "
5.
ed file<$ d
.
w
!
6. sed
-i
'$d' file
TOP
发送短消息
UID
33813
精华
1
威望
2
金钱
15.25 元
查看公共资料
搜索帖子
zhanchiaoxiang
组别
注册会员
性别
积分
59
帖子
52
注册时间
2009-11-19
个人空间
相册
zhanchiaoxiang
2009-11-19 16:04
|
只看楼主
3
#
字体大小:
t
T
删除文件的第n行和倒数第n行
1.
删除第三行,并把结果送至文件newfile
sed '3d' file>newfile
删除倒数第三行,把结果送至文件newfile
tac file|sed '3d'|tac >newfile
2.
FILENAME="test"
N=2
#删除第N行
sed ${N}'d' ${FILENAME}
#删除倒数第N行
sed $(($(cat ${FILENAME}|wc -l)-${N}+1))'d' ${FILENAME}
TOP
发送短消息
UID
33813
精华
1
威望
2
金钱
15.25 元
查看公共资料
搜索帖子
zhanchiaoxiang
组别
注册会员
性别
积分
59
帖子
52
注册时间
2009-11-19
个人空间
相册
zhanchiaoxiang
2009-11-19 16:05
|
只看楼主
4
#
字体大小:
t
T
如何将文本倒置
将文本倒置,除了tac,还有其它办法,用vim,用awk,都可以实现 1.
line=$(awk 'END{print NR}' filename)
while((line!=0));do awk 'NR=='"$line"'' file;((line--));done
2.
vim -c "g/^/m 0|wq" file
3.
awk ' {line[NR] = $0} END {for(i = NR; i > 0; i--) print line
}' filename
TOP
发送短消息
UID
33813
精华
1
威望
2
金钱
15.25 元
查看公共资料
搜索帖子
zhanchiaoxiang
组别
注册会员
性别
积分
59
帖子
52
注册时间
2009-11-19
个人空间
相册
zhanchiaoxiang
2009-11-19 16:05
|
只看楼主
5
#
字体大小:
t
T
删除某目录下除某文件的所有文件
分删除单个文件和删除多个文件两种情况 1.单个文件的情况下
ls !(filename)|xargs rm
2.多个文件的情况下
ls !(filename1|filename2|...|filenamen)|xargs rm
TOP
发送短消息
UID
33813
精华
1
威望
2
金钱
15.25 元
查看公共资料
搜索帖子
zhanchiaoxiang
组别
注册会员
性别
积分
59
帖子
52
注册时间
2009-11-19
个人空间
相册
zhanchiaoxiang
2009-11-19 16:08
|
只看楼主
6
#
字体大小:
t
T
字符排列变型
如由:
a1
a2
b1
b2
变为
a1 b1
a2 b2
cat filename
a1
a2
a3
b1
b2
b3
c1
c2
c3
变为
a1 b1 c1
a2 b2 c2
a3 b3 c3
1.cat filename|sort -nk 1.2 | xargs -n3
2.split -ls filename;ls x*|xargs -n3|while read i;do paste $i -d' ';echo +++++++++++;done;rm x*
TOP
发送短消息
UID
32957
精华
0
威望
2
金钱
2.7 元
查看公共资料
搜索帖子
cqhtk
组别
新手上路
性别
积分
14
帖子
10
注册时间
2009-07-16
个人空间
相册
cqhtk
2009-12-24 10:21
|
只看该用户
7
#
字体大小:
t
T
嗯,支持
TOP
返回列表
上一主题
|
下一主题
发新主题
嵌入式Linux技术区
嵌入式Linux综合
嵌入式GUI开发
嵌入式驱动开发
嵌入式工具
嵌入式硬件开发
嵌入式应用
综合技术区
单片机技术及应用
C/C++/VC++专区
课程设计+电子竞赛+毕业设计
人在职场
嵌入式招聘信息
我要面试
人在职场
职业规划和测评
休闲专区
朝酒晚舞
热点话题
网站事务
关于培训课程的问题、建议、咨询、网站公告
热点话题
C/C++/VC++专区
嵌入式应用
嵌入式驱动开发
嵌入式招聘信息
嵌入式GUI开发
职业规划和测评
嵌入式Linux综合
单片机技术及应用
帖子标题
空间日志
相册标题
作者
我的资料
我的空间
凌阳教育
关于我们
课程体系
就业服务
我要报名
联系我们