Удалить строку, которая содержит определенный разделитель с различным количеством столбцов

Хотите удалить строку, которая содержит определенный разделитель с разным количеством столбцов

                                         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

В этом случае я хочу удалить все с разделителем ":":

7с: е5: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 ответа

Решение

Вы можете попробовать:

grep -v ":..:" yourfile

Это удалит все строки, которые содержат пару двоеточий, разделенных любыми двумя символами - которые, кажется, не появляются в строках, которые вы действительно хотите.

Попробуй это 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
Другие вопросы по тегам