如何使用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
如何使用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
只要刪除一切都交給一個破折號和空間:
sed 's/.*- //'
顯然要從-
打印的一切:
爲此,您可以使用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
^[^-]*-
匹配一切從線(^
)到第一個破折號和一個空格的開始。然後它用一個空字符串替換它,所以實際上它刪除了一切,最多爲-
。使用
回參考:
sed 's/.*-\(.*\)/\1/'