如何使用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
答案 0 :(得分:4)
只需删除短划线和空格中的所有内容:
sed 's/.*- //'
答案 1 :(得分: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
^[^-]*-
匹配从行首(^
)到第一个破折号,然后是空格的所有内容。然后它用一个空字符串替换它,所以实际上它删除的所有内容都是-
。
答案 2 :(得分:1)
使用反向引用:
sed 's/.*-\(.*\)/\1/'