在bash中从文件的行部分删除字符串

时间:2014-08-06 09:15:43

标签: string bash sed

我需要删除/删除字符串,如下所示:

这是我的专栏:

2014-08-05T13:16:29+01:00 (INFO:3824.87075728): [27219] [ <emailaddress@domain.com>] A message from <emailaddress@domain.com> source]

结果,我想尝试:

2014-08-05T13:16:29+01:00 (INFO:3824.87075728): [27219] source

实际上它是为了摆脱电子邮件地址。

感谢大家的所有建议。

AL

我尝试过使用sed:

sed -e's /&lt;。* from // g'

2014-08-05T13:16:29+01:00 (INFO:3824.104725392): [27219] [  <emailaddress@domain.com> source

就像现在一样,我想知道如何从[直到源代码中删除。

谢谢。

1 个答案:

答案 0 :(得分:1)

下面的awk命令会打印前三列,删除]符号的最后一列。

$ echo '2014-08-05T13:16:29+01:00 (INFO:3824.87075728): [27219] [ <emailaddress@domain.com>] A message from <emailaddress@domain.com> source]' | awk '{gsub(/]/,"",$NF); print $1,$2,$3,$NF}'
2014-08-05T13:16:29+01:00 (INFO:3824.87075728): [27219] source

$ echo '2014-08-05T13:16:29+01:00 (INFO:3824.87075728): [27219] [ <emailaddress@domain.com>] A message from <emailaddress@domain.com> source]' | sed 's/\[ .*\(source\).*$/\1/g'
2014-08-05T13:16:29+01:00 (INFO:3824.87075728): [27219] source