在Linux上使用sed格式化字符串


working with sed on linux to format a string

嘿伙计们:)我有一个非常大量的数据(访问日志)的文件,我有一个小问题…我想保存所有的访问日志,我有一个数据库..我能够过滤几乎所有需要的重要数据。除了一个,这是我的问题…想象一下:

$domain = system(" awk '{print $1}'/var/www/laravel/xxxxxx/xxxxxx/xxxxxxx.log");

$1是域- $2-6是我需要的其他数据。但是现在我的问题是$7是一个重要的字符串,我可以根据需要过滤它。所以我的第一个日志从7美元变成了11美元——但是第二个日志(来自这个重要的字符串)从7美元变成了13美元——现在我无法正确地过滤它们:/

唯一的想法可能会有所帮助的是,这些重要的数据是围绕一些' ()'

现在我需要一个命令,从第一个(直到最后一个)切割每个字符串-但是这个重要的字符串在一些日志中看起来像这样:

(11111 22222) (33333 444444)

所以我想要整个内容从'('之前的111111直到')在4444444之后

有谁知道如何用sed, grep或其他东西做到这一点吗?

您可能想使用cut:

ryan@~:$ cat test
some text ( 11111 22222 ) ( 33333 444444) some other text
ryan@~:$ cut -d'(' -f2-3 test | cut -d')' -f1-2
 11111 22222 ) ( 33333 444444