删除包含具有不同列数的特定分隔符的行

时间:2013-11-26 12:35:07

标签: sed awk grep tr

想要删除包含具有不同列数的特定分隔符的行

                                         CPU Load for sdp4

7c:e5:3b:6e:2e:5f:d9:4d:68:4d:d5:57:3a:cb:4d:45.
  02:30PM   up 1 day,   9:20,  2 users,  load average: 6.88, 5.96, 5.57

在这种情况下,我想用分隔符“:”删除所有内容:

7C:E5:3B:6E:2E:5F:D9:4D:68:4D:D5:57:3A:CB:4D:45

我想删除任何包含该分隔符的内容。

预期观点:

                                         CPU Load for sdp4

  02:30PM   up 1 day,   9:20,  2 users,  load average: 6.88, 5.96, 5.57

2 个答案:

答案 0 :(得分:1)

试试这个grep行:

grep -Pv '^..(:..)+\.$' file

以你的例子:

kent$  echo "                                         CPU Load for sdp4

7c:e5:3b:6e:2e:5f:d9:4d:68:4d:d5:57:3a:cb:4d:45.
  02:30PM   up 1 day,   9:20,  2 users,  load average: 6.88, 5.96, 5.57"|grep -Pv '^..(:..)+\.$'                                                                                   
                                         CPU Load for sdp4

  02:30PM   up 1 day,   9:20,  2 users,  load average: 6.88, 5.96, 5.57

答案 1 :(得分:1)

你可以尝试:

grep -v ":..:" yourfile

这将删除包含由任意两个字符分隔的一对冒号的所有行 - 这似乎不会出现在您想要的行中。