2015-10-21 4 views
0

hey guys :) У меня есть файл с очень большим количеством данных (журналы доступа), и у меня есть небольшая проблема. Я хочу сохранить все журналы доступа, которые у меня есть в базе данных .. и я смог отфильтровать почти все важные данные ein need .. кроме того, и это моя проблема ... так что представьте:Работа с sed на linux для форматирования строки

$ domain = system ("awk '{print $ 1}'/вар/WWW/Laravel/XXXXXX/ххххх/xxxxxxx.log ");

$ 1 является доменом - и $ 2-6 - это другие данные, которые мне нужны .. но теперь моя проблема в том, что $ 7 является важной строкой, и я могу ее фильтровать так, как мне нужно ... поэтому мой первый журнал идет от 7 до 11 долларов США - но журнал seccond (из этой важной строки) идет от $ 7 до $ 13 - и теперь я не могу фильтровать их в правильном направлении:/

Единственное, может быть, может помочь, так это то, что эти важные данные вокруг некоторых '() '

Теперь мне нужна команда, которая не режет мне каждую строку из первых (до последнего) - но эта важная строка выглядит на некоторых журналах, как это:

(11111 22222) (33333 444444)

так я хочу, чтобы весь контент из '(' перед 111111 до ')' после 4444444

не делать кто знает, как сделать это с помощью SED, Grep или что-то другое?

ответ

0

Вы, вероятно, хотите использовать cut:

[email protected]~:$ cat test 
some text (11111 22222) (33333 444444) some other text 
[email protected]~:$ cut -d'(' -f2-3 test | cut -d')' -f1-2 
11111 22222) (33333 444444 
+0

кошка нету в -d функцию .. – Evolution48

+0

хорошо получило это знает :) – Evolution48

+0

@ Evolution48 сделали это работает для вас? – ryanpcmcquen

Смежные вопросы