1

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

В частности:

varnishlog | grep Hash

Производит например

   34 Hash         c /address
   41 Hash         c /addresss?xml=1&

Я хочу, чтобы последняя часть после "с", чтобы записать их в файл.

К какой команде я могу подключиться?

2 ответа2

3

awk работает, но я думаю, что сокращение проще для этой задачи, например

$ varnishlog | grep Hash | cut -b 23-

-b указывает байты, а 23 - говорит, что 23-й байт хранится до конца строки.

Вы также можете использовать -c, то есть символы вместо байтов (в этом случае символы == байты)

1

Я провел некоторое исследование и придумал следующее, используя AWK:

$ varnishlog | grep Hash | awk {'print substr($0,23)}'

Это отфильтровывает первые 23 символа и оставляет ту часть, которую я хочу.

Если у кого-то есть лучший ответ, пожалуйста, напишите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .