如何使用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发布于 2014-06-10 13:12:39
只要删除所有的东西,直到一个破折号和空格:
sed 's/.*- //'发布于 2014-06-10 13:13:04
显然你想从-打印所有东西
为此,您可以使用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^[^-]*-匹配从行开始(^)到第一个破折号再到空格的所有内容。然后,它用一个空字符串替换它,因此实际上它正在删除直到-的所有内容。
发布于 2014-06-10 13:14:06
使用反向引用:
sed 's/.*-\(.*\)/\1/'https://stackoverflow.com/questions/24141850
复制相似问题