在 linux 上使用 sed 来格式化字符串
working with sed on linux to format a string
嘿伙计们:)我有一个包含大量数据(访问日志)的文件,我在那里遇到了一个小问题..我想将我拥有的所有访问日志保存在数据库中..我能够过滤几乎所有需要的重要数据.. 除了一个,这是我的问题...所以想象一下:
$domain = system(" awk '{print $1}' /var/www/laravel/xxxxxx/xxxxx/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
嘿伙计们:)我有一个包含大量数据(访问日志)的文件,我在那里遇到了一个小问题..我想将我拥有的所有访问日志保存在数据库中..我能够过滤几乎所有需要的重要数据.. 除了一个,这是我的问题...所以想象一下:
$domain = system(" awk '{print $1}' /var/www/laravel/xxxxxx/xxxxx/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