24小时热门版块排行榜    

查看: 1214  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

Louis_PND

新虫 (初入文坛)

[求助] 【求助】shell脚本awk实现特定取词

最近在学awk,遇到了一个问题,我的文件里面每行都是类似如下的格式:  
target Download complete.
现在我想对每行做以下操作,删除<>之间的词及<>本身,每行只留下(以上面这行数据为例):
target Download complete.
最好能用awk指令来实现,请牛人指教!!
回复此楼
一步一个脚印
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Louis_PND

新虫 (初入文坛)

引用回帖:
Originally posted by huycwork at 2011-05-28 15:39:23:
试试这个指令:
s/<.*?>//g

是用sed 's/<.*?>//g' 么?刚才试了下,好像对文件没做啥操作。。。
一步一个脚印
3楼2011-05-28 16:04:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

huycwork

金虫 (著名写手)

【答案】应助回帖


zzy870720z(金币+1): 谢谢提示 2011-05-30 15:28:44
试试这个指令:
s/<.*?>//g
漩涡的中心有一块空地,空空的。
2楼2011-05-28 15:39:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)

【答案】应助回帖

★ ★
Louis_PND(金币+1): 高人啊,刚才运行成功了!小弟我以前perl没看过,但这种情况貌似只有perl才能解决了,得好好看看perl。再次感谢! 2011-05-28 16:57:17
xzhdty(金币+2): 高手啊谢谢 2011-05-28 21:31:59
引用回帖:
Originally posted by Louis_PND at 2011-05-28 16:04:03:
是用sed 's/<.*?>//g' 么?刚才试了下,好像对文件没做啥操作。。。

我刚才试了下,sed和awk似乎都不支持非贪婪的正则表达式,如果使用s/<.*>//g的话就全部替换了。perl才支持这个:
CODE:
perl -e 'while(<>){print if s/<.*?>/ /g}' testfile

漩涡的中心有一块空地,空空的。
4楼2011-05-28 16:43:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xioooli

金虫 (小有名气)

【答案】应助回帖

★ ★
zzy870720z(金币+2): 谢谢指教,原来有真么多高手 2011-05-30 15:28:31
引用回帖:
Originally posted by huycwork at 2011-05-28 16:43:40:
我刚才试了下,sed和awk似乎都不支持非贪婪的正则表达式,如果使用s/<.*>//g的话就全部替换了。perl才支持这个:
CODE:
perl -e 'while(<>){print if s/<.*?>/ /g}' testfile


CODE:
sed 's/<[^>]*>//g' file

5楼2011-05-30 10:15:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见