shell awk的笔试题 求解答

fabby 发布于 2015/05/08 23:34
阅读 528
收藏 1
AWK

 一个shell笔试题 求指教

 ddfx2015-05-08 jfsjdj,jf8

2015-05-09 jf5--s

2015-05-08 fjsjg,89

abcfsdfsdg344th

fsdgfsdgdef




问题一: 我有上面的一个行 有n行 用awk提取最后的数字  只有最后的  8,89  当然 不用awk也行。

问题二:将有逗号的(,)的后面都加上helloword。

问题三:把以abc开头 下一行为def结尾的两行替换成douyu


加载中
1
Feng_Yu
Feng_Yu

第一个grep可轻松解决

$ echo ' ddfx2015-05-08 jfsjdj,jf8
2015-05-09 jf5--s
2015-05-08 fjsjg,89
abcfsdfsdg344th
fsdgfsdgdef' | grep -oP '[0-9]+$'
8
89

第二个这种流式替换sed是更合适的了

$ echo ' ddfx2015-05-08 jfsjdj,jf8
2015-05-09 jf5--s
2015-05-08 fjsjg,89
abcfsdfsdg344th
fsdgfsdgdef' | sed 's/,/,helloworld/g'
 ddfx2015-05-08 jfsjdj,helloworldjf8
2015-05-09 jf5--s
2015-05-08 fjsjg,helloworld89
abcfsdfsdg344th
fsdgfsdgdef

第三个也没难度,跟上面一样,还是用sed的替换方案

$ echo 'ddfx2015-05-08 jfsjdj,jf8
2015-05-09 jf5--s
2015-05-08 fjsjg,89
abcfsdfsdg344th
fsdgfsdgdef' | sed '/^abc/{N; /def$/s/.*/douyu/g}'
ddfx2015-05-08 jfsjdj,jf8
2015-05-09 jf5--s
2015-05-08 fjsjg,89
douyu

0
Feng_Yu
Feng_Yu
这些不都用sed和grep就可以搞定了么?
返回顶部
顶部