Удалить строку, которая содержит определенный разделитель с различным количеством столбцов
Хотите удалить строку, которая содержит определенный разделитель с разным количеством столбцов
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