2014-06-10 93 views
0

如何使用sed從以下輸入文件打印部分文本?如何使用sed從給定文本打印部分文本

輸入數據文件

ABC mobile - ABC, Inc 
XYZ123 mobile - XYZ123 company 
TD Ameritrade Mobile Trader - TD Ameritrade Mobile, LLC 

期望輸出

ABC, Inc 
XYZ123 Company 
TD Ameritrade Mobile, LLC 

回答

4

只要刪除一切都交給一個破折號和空間:

sed 's/.*- //' 
1

顯然要從-打印的一切:

爲此,您可以使用cut

$ cut -d'-' -f2 file 
ABC, Inc 
XYZ123 company 
TD Ameritrade Mobile, LLC 

但它顯示了破折號後的前導空格。因此,最好是去awk

$ awk -v FS="- " '{print $2}' file 
ABC, Inc 
XYZ123 company 
TD Ameritrade Mobile, LLC 

-v FS="- "設置字段分隔符爲-(注意空格),然後{print $2}打印第二塊。

或者sed

$ sed 's/^[^-]*- //' file 
ABC, Inc 
XYZ123 company 
TD Ameritrade Mobile, LLC 

^[^-]*-匹配一切從線(^)到第一個破折號和一個空格的開始。然後它用一個空字符串替換它,所以實際上它刪除了一切,最多爲-。使用

1

回參考:

sed 's/.*-\(.*\)/\1/' 
相關問題