使用SED两个模式之间进行打印 [英] using sed to print between two patterns

查看:128
本文介绍了使用SED两个模式之间进行打印的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,我发现<一个很大href=\"http://stackoverflow.com/questions/5071901/removing-lines-between-two-patterns-not-inclusive-with-sed\">deleting两种模式并在打印两个分隔符之间的文本之间的文本但我还没有找到上打印使用bash功能,两种模式之间的文本任何东西。

如果我有:

 唉!可怜的Yorik,我认识他好

和我想的图案印之间的一切穷与井(独家)我会得到:

 Yorik,我就知道他

我怎么能做到这一点使用类似awk或者sed?


解决方案

  dtpwmbp:〜pwadas $回声唉!可怜的Yorik,我认识他好| SED -e的/^.*差//克; S /以及* $ // G'
Yorik,我认识他
dtpwmbp:〜pwadas $回声唉可怜Yorik,我认识他好| AWK'{子(/.*差/,);子(/孔* /。);印刷;}'
Yorik,我认识他

与文件输入用法:

  dtpwmbp:〜pwadas $回声唉!可怜的Yorik,我就知道他一切顺利&GT; INFILE
dtpwmbp:〜pwadas $猫INFILE
唉可怜Yorik,我了解他
dtpwmbp:〜pwadas $猫INFILE | SED -e的/^.*差//克; S /以及* $ // G'
Yorik,我认识他
dtpwmbp:〜pwadas $ SED -e':S /^.*差//克; S /以及* $ // G'&LT; INFILE
Yorik,我认识他
dtpwmbp:〜pwadas $猫INFILE | AWK'{子(/.*差/,);子(/孔* /。);印刷;}'
Yorik,我认识他
dtpwmbp:〜pwadas $的awk'{子(/.*差/,);子(/孔* /,);印刷;}'&LT; INFILE
Yorik,我认识他

So I've found a great deal on deleting the text between two patterns and on printing the text between two delimiters but I haven't found anything on printing the text between two patterns using bash functions.

If I have:

"Alas poor Yorik, I knew him well"

and I want to print everything between the patterns "poor" and "well" (exclusive) I would get:

" Yorik, I knew him "

How could I achieve this using something like sed or awk?

解决方案

dtpwmbp:~ pwadas$ echo "Alas poor Yorik, I knew him well" | sed -e 's/^.*poor //g;s/ well.*$//g'
Yorik, I knew him
dtpwmbp:~ pwadas$ echo "Alas poor Yorik, I knew him well" | awk '{sub(/.*poor /,"");sub(/ well.*/,"");print;}'
Yorik, I knew him

Usage with file input:

dtpwmbp:~ pwadas$ echo "Alas poor Yorik, I knew him well" > infile
dtpwmbp:~ pwadas$ cat infile 
Alas poor Yorik, I knew him well
dtpwmbp:~ pwadas$ cat infile | sed -e 's/^.*poor //g;s/ well.*$//g'
Yorik, I knew him
dtpwmbp:~ pwadas$ sed -e 's/^.*poor //g;s/ well.*$//g' < infile
Yorik, I knew him
dtpwmbp:~ pwadas$ cat infile | awk '{sub(/.*poor /,"");sub(/ well.*/,"");print;}'
Yorik, I knew him
dtpwmbp:~ pwadas$ awk '{sub(/.*poor /,"");sub(/ well.*/,"");print;}' < infile 
Yorik, I knew him

这篇关于使用SED两个模式之间进行打印的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆