2012-09-15 34 views

回答

4
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 

用法与文件输入:

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 
+1

其实这是你使用,在某些情况下,括号表达式正则表达式的事情(以及*。)或相似的,(*差。)(*)。反向引用 -/2在这个例子中,将更具可读性,无论如何诀窍是使用正则表达式定义。 –

+0

优秀!谢谢。 –

+0

更新为文件输入用法 –