{"id":281813,"date":"2016-11-30T22:25:04","date_gmt":"2016-11-30T19:25:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=281813"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=281813","title":{"rendered":"Grep \u0432\u0441\u0435, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e"},"content":{"rendered":"<p>\u041f\u0440\u043e <code>grep<\/code> \u0437\u043d\u0430\u044e\u0442 \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u0441\u0435, \u0442\u043e <a href=\"https:\/\/habrahabr.ru\/post\/229501\/\">\u043c\u043d\u043e\u0433\u0438\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0425\u0430\u0431\u0440\u0430<\/a>, \u043e\u0434\u043d\u0430\u043a\u043e \u0435\u0433\u043e \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u043e\u0432 \u0437\u043d\u0430\u044e\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0435. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e75\/a77\/bd2\/e75a77bd22b042a5a8a7abbf4eacac81.png\"\/>  <\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0443\u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0433\u0440\u0435\u043f\u0430\u0442\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u0442\u0430\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0445\u043e\u0442\u044c \u043a\u0440\u0443\u043f\u0438\u0446\u0443 \u0442\u0435\u043a\u0441\u0442\u0430.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h2>pgrep<\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 <code>pgrep<\/code> \u0433\u0440\u0435\u043f\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432.<\/p>\n<p>  <\/p>\n<pre><code>(5:573)$ pgrep bash 1772 11003 20678<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421 \u043a\u043b\u044e\u0447\u043e\u043c <code>-a<\/code>, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u0434\u0430\u0441\u0442 \u0432\u0441\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443.<\/p>\n<p>  <\/p>\n<pre><code>(5:574)$ pgrep -af bash 1772 -bash 11003 \/bin\/bash 20678 \/bin\/bash 23567 -bash<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c <code>ps<\/code> \u0438 <code>psgrep<\/code>, \u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0443\u0434\u043e\u0431\u043d\u0435\u0435, \u0447\u0435\u043c <code>ps -ef |grep process_name<\/code>, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0430\u043c\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>grep<\/code>.<\/p>\n<p>  <\/p>\n<pre><code>(5:575)$ ps wup $(pgrep bash) USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND root      1772  0.0  0.0  21572  3020 tty1     S+   \u043d\u043e\u044f19   0:00 -bash user     11003  0.0  0.0  21384  3772 pts\/3    Ss   \u043d\u043e\u044f28   0:00 \/bin\/bash user     20678  0.0  0.0  21396  3604 pts\/1    Ss+  \u043d\u043e\u044f24   0:00 \/bin\/bash root     23567  0.0  0.0  21364  3016 tty2     S+   \u043d\u043e\u044f21   0:00 -bash 946\/7720MB      0.48 0.94 1.00 1\/352 20403<\/code><\/pre>\n<p>  <\/p>\n<h2>zipgrep, zfgrep, bzfgrep, xzfgrep<\/h2>\n<p>  <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e, \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434.<\/p>\n<p>  <\/p>\n<pre><code>(5:576)$ zipgrep -i exception apptrace.zip jboss.stderr:java.lang.NumberFormatException: For input string: &quot;4718-4e99-bc84-828a7bf7f254&quot; jboss.stderr: at java.lang.NumberFormatException.(NumberFormatException.java:65) (5:576)$ (5:576)$ bzfgrep -w bugs \/usr\/share\/doc\/coreutils-8.25\/README.bz2 that distribution and found and reported bugs. &lt;http:\/\/thread.gmane.org\/gmane.comp.gnu.coreutils.bugs\/12292\/focus=12318&gt;. see &lt;http:\/\/thread.gmane.org\/gmane.comp.lib.gnulib.bugs\/12015\/&gt;. Reporting bugs: subtle bugs. When reporting bugs, please include in the subject line both the package<\/code><\/pre>\n<p>  <\/p>\n<p>\u0423\u0442\u0438\u043b\u0438\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 <em>\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/em> \u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u043e\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 <code>egrep<\/code>.<\/p>\n<p>  <\/p>\n<table>\n<thead>\n<tr>\n<th>Fixed Strings<\/th>\n<th>Basic RegExps<\/th>\n<th>Extended RegExps<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>zfgrep<\/td>\n<td>zgrep<\/td>\n<td>zegrep<\/td>\n<\/tr>\n<tr>\n<td>bzfgrep<\/td>\n<td>bzgrep<\/td>\n<td>bzegrep<\/td>\n<\/tr>\n<tr>\n<td>xzfgrep<\/td>\n<td>xzgrep<\/td>\n<td>xzegrep<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>  <\/p>\n<p>\u041a\u0430\u043a\u0438\u043c \u043f\u0430\u043a\u0435\u0442\u0430\u043c \u043e\u043d\u0438 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442?<\/p>\n<p>  <\/p>\n<pre><code>(5:777)$ equery belongs $(which zgrep zipgrep bzgrep xzgrep)  * Searching for \/usr\/bin\/zgrep,\/usr\/bin\/zipgrep,\/usr\/bin\/bzgrep,\/usr\/bin\/xzgrep ...  app-arch\/bzip2-1.0.6-r7 (\/usr\/bin\/bzgrep) app-arch\/gzip-1.8 (\/usr\/bin\/zgrep) app-arch\/unzip-6.0_p20 (\/usr\/bin\/zipgrep) app-arch\/xz-utils-5.2.2 (\/usr\/bin\/xzgrep)<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u0441 <code>grep<\/code> \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0438 \u0438 \u0440\u0430\u0434\u0443\u0435\u043c\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443.<\/p>\n<p>  <\/p>\n<pre><code>(5:578) grep -oE '\\b[0-9]{1,3}(\\.[0-9]{1,3}){3}\\b' \/var\/log\/emerge.log |tail -n 3 7.2.6.8 213.180.204.183 213.180.204.183 (5:579) (5:579) bzegrep -o '\\b[0-9]{1,3}(\\.[0-9]{1,3}){3}\\b' \/tmp\/emerge.log.bz2 |tail -n3 7.2.6.8 213.180.204.183 213.180.204.183<\/code><\/pre>\n<p>  <\/p>\n<h2>pdfgrep<\/h2>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u0434\u0435\u0442 \u0441 \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u044b\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u043c.<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">(5:580)$ eix pdfgrep [I] app-text\/pdfgrep      \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438:      1.3.2 1.4.1-r1 {+pcre test unac}      \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438:  1.4.1-r1(14:10:46 29.11.2016)(pcre -test -unac)      \u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430:     http:\/\/pdfgrep.org\/      \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435:              A tool similar to grep which searches text in PDFs<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0430\u0440\u0441\u0438\u0442 pdf \u0444\u0430\u0439\u043b\u044b \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0441\u0435 \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e <code>grep<\/code>.<\/p>\n<p>  <\/p>\n<pre><code>(5:581)$ pdfgrep -i outdiscards ebook\/linux_netw.pdf  IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTDISCARDS);<\/code><\/pre>\n<p>  <\/p>\n<p><code>Pdfgrep<\/code> \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 <em>\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/em>, \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u044d\u0442\u043e <em>\u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430<\/em>. \u042f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e pdf-\u043a\u0438 \u0438 \u0438\u0449\u0443 \u0432 \u043d\u0438\u0445 \u0442\u0435\u043a\u0441\u0442, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u0441\u043f\u043e\u043c\u043d\u044e \u0432 \u043a\u0430\u043a\u043e\u0439 \u043a\u043d\u0438\u0433\u0435 \u0431\u044b\u043b\u043e \u0442\u043e, \u0447\u0442\u043e \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0438 \u0442\u0430\u043a \u0442\u0435\u0440\u044f\u044e \u0443\u0439\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0443 \u0437\u043d\u0430\u0442\u044c.<\/p>\n<p>  <\/p>\n<h2>dgrep<\/h2>\n<p>  <\/p>\n<p>\u0414\u0435\u0431\u0438\u0430\u043d\u0449\u0438\u043a\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u043c <code>dgrep<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0434\u0435\u0442 \u0441 \u043f\u0430\u043a\u0435\u0442\u043e\u043c <a href=\"http:\/\/packages.debian.org\/debian-goodies\">debian goodies<\/a>. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a \u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 <code>grep<\/code>, \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0444\u0430\u0439\u043b\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e32\/faa\/a31\/e32faaa313f343e68fede17161f89577.png\"\/>  <\/p>\n<p>  <\/p>\n<p>  <\/p>\n<table>\n<thead>\n<tr>\n<th>Fixed Strings<\/th>\n<th>Basic RegExps<\/th>\n<th>Extended RegExps<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>dfgrep<\/td>\n<td>dgrep<\/td>\n<td>degrep<\/td>\n<\/tr>\n<tr>\n<td>&#8212;<\/td>\n<td>dzgrep<\/td>\n<td>&#8212;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>  <\/p>\n<p>\u0412\u0435\u0440\u0445\u043d\u0438\u0435 \u0442\u0440\u0438 \u0438\u0449\u0443\u0442 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445, \u0430 <code>dzgrep<\/code> \u2014 \u0432 \u0430\u0440\u0445\u0438\u0432\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<h2>msggrep, mboxgrep<\/h2>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u0443\u0436\u0435 \u0443\u0437\u043a\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u043e\u0432\u0438\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0418\u0434\u0435\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 \u043f\u0430\u043a\u0435\u0442\u043e\u043c <a href=\"https:\/\/www.gnu.org\/software\/gettext\/\">gettext<\/a>. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u0438\u0437 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445, \u043d\u043e \u0435\u0441\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<p>  <\/p>\n<pre><code>(5:752)$ msggrep -K -e help \/usr\/share\/locale\/ru\/cups_ru.po<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>msgid &quot;&quot; msgstr &quot;&quot; &quot;Project-Id-Version: CUPS 2.0\\n&quot; &quot;Report-Msgid-Bugs-To: http:\/\/www.cups.org\/str.php\\n&quot; &quot;POT-Creation-Date: 2015-07-20 14:24-0400\\n&quot; &quot;PO-Revision-Date: 2015-01-28 12:00-0800\\n&quot; &quot;Last-Translator: Aleksandr Proklov\\n&quot; &quot;Language-Team: PuppyRus Linux Team\\n&quot; &quot;Language: Russian\\n&quot; &quot;MIME-Version: 1.0\\n&quot; &quot;Content-Type: text\/plain; charset=utf-8\\n&quot; &quot;Content-Transfer-Encoding: 8bit\\n&quot;  msgid &quot; --help Show help.&quot; msgstr &quot; --help \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u043a\u0443.&quot;  msgid &quot; --help Show this help.&quot; msgstr &quot; --help \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u043f\u0440\u0430\u0432\u043a\u0443.&quot;<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043a\u0441\u043f\u043e\u043d\u0430\u0442 \u2014 \u043f\u0430\u0440\u0441\u0435\u0440 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0445 \u044f\u0449\u0438\u043a\u043e\u0432 <strong>mboxgrep<\/strong>. <a href=\"http:\/\/www.mboxgrep.org\/\">\u041f\u0440\u043e\u0435\u043a\u0442<\/a> \u0442\u0430\u043a \u0438 \u043d\u0435 \u0432\u0437\u043b\u0435\u0442\u0435\u043b, \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0430. \u041f\u043e \u0438\u0434\u0435\u0435 \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u043b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0432 \u043f\u0438\u0441\u044c\u043c\u0430\u0445 \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b. \u041e\u0434\u043d\u0430\u043a\u043e, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043d \u044d\u0442\u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043c\u0435\u0442\u044c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c.<\/p>\n<p>  <\/p>\n<pre><code>(5:753)$ grep Inomics docs\/PocoMail.bak\/Mail\/Trash.mbx From:     Inomics &lt;inomics-alert@inomics.com&gt; Reply-To: Inomics &lt;inomics-alert@inomics.com&gt; Subject: Inomics Alert Service following is a list of new job openings in Inomics, the= Inomics! You can always unsubscribe from the Inomics Job Alert service by= plying to this mail with the words &quot;Inomics-Job-Unsub#1avwnr55di&quot;=<\/code><\/pre>\n<p>  <\/p>\n<p>\u0410 \u043e\u043d \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442.<\/p>\n<p>  <\/p>\n<pre><code>(5:754)$ mboxgrep Inomics docs\/PocoMail.bak\/Mail\/Trash.mbx (5:755)$<\/code><\/pre>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b <code>read<\/code> \u0432\u0441\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435, \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u043e\u0438\u0441\u043a\u0430.<\/p>\n<p>  <\/p>\n<pre><code>(5:779)$ strace -e trace=read -o strace_inomics mboxgrep Inomics Mail\/Trash.mbx (5:780)$ strace -e trace=read -o strace_freenet mboxgrep freenet Mail\/Trash.mbx (5:781)$ diff strace_inomics strace_freenet;md5sum strace_* 14b7de546a2a776006ad2a6440b680fd  strace_freenet 14b7de546a2a776006ad2a6440b680fd  strace_inomics<\/code><\/pre>\n<p>  <\/p>\n<p>\u041b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u0437\u0430\u0432\u0435\u043b\u0430\u0441\u044c \u043b\u0438 \u0434\u0430\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443 \u043a\u043e\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c?<br \/>  \u041d\u0443 \u043b\u0430\u0434\u043d\u043e, \u043c\u044b \u0443\u0432\u043b\u0435\u043a\u043b\u0438\u0441\u044c, \u0430 \u0433\u0440\u0435\u043f \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e \u0435\u0449\u0435 \u043d\u0435 \u0438\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e.<\/p>\n<p>  <\/p>\n<h2>ssgrep<\/h2>\n<p>  <\/p>\n<p>\u041d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 <a href=\"http:\/\/www.gnumeric.org\/\">Gnumeric<\/a>. \u0423\u043c\u0435\u0435\u0442 \u0448\u0435\u0440\u0441\u0442\u0438\u0442\u044c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0439 Excel \u0444\u043e\u0440\u043c\u0430\u0442. \u0420\u0443\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043d\u0435\u0433\u043e, \u043d\u043e \u0434\u0435\u043b\u0430\u0435\u0442.<\/p>\n<p>  <\/p>\n<pre><code>(5:782)$ ssgrep Date files\/*.xlsx \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 &quot;43&quot; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 &quot;41&quot; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 &quot;44&quot; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 &quot;42&quot; Unexpected element 'workbookProtection' in state: workbook \u0414\u0430\u0442\u0430 \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f\/Date of Birth (5:783)$ grep Date files\/*.xlsx (5:784)$<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442. \u0412\u043f\u043e\u043b\u043d\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430, <em>\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e<\/em>.<\/p>\n<p>  <\/p>\n<h2>ngrep<\/h2>\n<p>  <\/p>\n<p>\u0415\u0449\u0435 \u043e\u0434\u0438\u043d <a href=\"http:\/\/ngrep.sourceforge.net\/\">\u0437\u0430\u0431\u0440\u043e\u0448\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 SourceForge<\/a>. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437-\u0441\u0435\u0431\u044f \u0433\u0438\u0431\u0440\u0438\u0434 <code>tcpdump<\/code> \u0438 <code>grep<\/code>, \u043f\u0440\u0438\u0447\u0435\u043c \u043a \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043b\u0438\u0436\u0435, \u0447\u0435\u043c \u043a\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u043f\u043e \u043f\u043e\u0440\u0442\u0443 <code>syslog<\/code> \u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443.<\/p>\n<p>  <\/p>\n<pre><code>$ ngrep -d any 'error' port syslog<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u043f\u043e \u043f\u043e\u0440\u0442\u0443 <code>ftp<\/code> \u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u0430\u043c \u0431\u0435\u0437 \u0443\u0447\u0435\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c.<\/p>\n<p>  <\/p>\n<pre><code>$ ngrep -wi -d any 'user|pass' port 21<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e-\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 <code>http<\/code> \u0442\u0440\u0430\u0444\u0438\u043a\u0430.<\/p>\n<p>  <\/p>\n<pre><code>$ ngrep -W byline port 80 interface: eth0 (64.90.164.72\/255.255.255.252) filter: ip and ( port 80 ) #### T 67.169.59.38:42177 -&gt; 64.90.164.74:80 [AP] GET \/ HTTP\/1.1. User-Agent: Mozilla\/4.0 (compatible; MSIE 6.0; X11; Linux i686) Opera ... Host: www.darkridge.com. Accept: text\/html, application\/xml;q=0.9, application\/xhtml+xml;q=0.9 ... Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1. Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0. Cookie: SQMSESSID=5272f9ae21c07eca4dfd75f9a3cda22e. Cookie2: $Version=1. Cache-Control: no-cache. Connection: Keep-Alive, TE. TE: deflate, gzip, chunked, identity, trailers.<\/code><\/pre>\n<p>  <\/p>\n<p>\u0410 \u0435\u0449\u0435 \u0435\u0441\u0442\u044c <strong>\u043a\u0438\u043b\u043b\u0435\u0440-\u0444\u0438\u0447\u0430<\/strong>. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c hex \u0441\u0442\u0440\u043e\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 <code>ngrep<\/code> \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0443 \u0437\u0430\u0432\u0438\u0440\u0443\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0433\u0438\u0444\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0444\u0430\u0439\u0440\u0432\u043e\u043b \u043d\u0430 \u0440\u0430\u043d\u043d\u0435\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<pre><code>$ ngrep -xX '0xc5d5e5f55666768696a6b6c6d6e6' port 80 interface: eth0 (64.90.164.72\/255.255.255.252) filter: ip and ( port 80 ) match: 0xc5d5e5f55666768696a6b6c6d6e6<\/code><\/pre>\n<p>  <\/p>\n<p>\u0416\u0430\u043b\u044c, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0430, \u043c\u043e\u0436\u0435\u0442 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u0433\u043e\u0434\u043d\u044b\u0439 <del>\u0441\u0430\u043c\u043e\u0432\u043e\u0440\u043e-\u043f\u0430\u0440\u043e\u0432\u043e\u0437\u043e-\u0432\u0435\u0440\u0442\u043e\u043b\u0435\u0442<\/del> \u043f\u0430\u0440\u0441\u0435\u0440 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430.<\/p>\n<p>  <\/p>\n<h2>deepgrep<\/h2>\n<p>  <\/p>\n<p>\u041f\u043e\u0434 \u043a\u043e\u043d\u0435\u0446 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u043d\u0435-\u044e\u043d\u0438\u043a\u0441\u0432\u0435\u0439\u043d\u044b\u0435 \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u0430, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <code>deepgrep<\/code> \u043e\u0442 KDE <a href=\"http:\/\/packages.debian.org\/strigi-utils\">strigi-utils<\/a>.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u043c\u0435\u0435\u0442 <del>\u0448\u0443\u043a\u0430\u0442\u044c<\/del> \u0438\u0441\u043a\u0430\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0430:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>tar<\/code><\/li>\n<li><code>ar<\/code> \/ <code>deb<\/code><\/li>\n<li><code>rpm<\/code> (\u043d\u043e \u043d\u0435 <code>cpio<\/code>)<\/li>\n<li><code>gzip\/gz<\/code><\/li>\n<li><code>bzip2\/bz2<\/code><\/li>\n<li><code>zip<\/code>, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0438 jar\/war \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b OpenOffice.org\/LibreOffice<\/li>\n<li>MIME \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f (\u0442.\u0435. \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u0435\u043c\u0430\u0439\u043b\u0435) <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0423\u043c\u0435\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c \u0432 \u0430\u0440\u0445\u0438\u0432\u0430\u0445, <em>\u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0434\u0440\u0443\u0433 \u0432 \u0434\u0440\u0443\u0433\u0430<\/em>.<\/p>\n<p>  <\/p>\n<pre><code>$ deepgrep bar foo.ar foo.ar\/foo.tar\/foo.tar.gz\/foo.zip\/foo.tar.bz2\/foo.txt.gz\/foo.txt:foobar foo.ar\/foo.tar\/foo.tar.gz\/foo.zip\/foo.tar.bz2\/foo.txt.gz\/foo.txt:bar<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u0437 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432.<\/p>\n<p>  <\/p>\n<ul>\n<li>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u043f\u0446\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/li>\n<li>\u041f\u043b\u043e\u0445\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430.<\/li>\n<li>\u041a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u0430.<\/li>\n<li>\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0436\u0430\u0442\u0438\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 LZMA \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430: <code>lzma, xz, lzip, 7z<\/code> \u0430 \u0442\u0430\u043a\u0436\u0435 <code>lzop, rzip, cab. cpio, xar, rar, .Z<\/code> \u0444\u043e\u0440\u043c\u0430\u0442\u044b.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b<\/h3>\n<p>  <\/p>\n<ul>\n<li><a href=\"http:\/\/noone.org\/blog\/English\/Computer\/Shell\/grep%2520everything.html\">grep everything<\/a><\/li>\n<li><a href=\"http:\/\/noone.org\/blog\/English\/Computer\/Debian\/CoolTools\/deepgrep.html\">deppgrep: grep nested archives with one command<\/a><\/li>\n<li><a href=\"http:\/\/ngrep.sourceforge.net\/usage.html\">ngrep \u2014 network grep<\/a><\/li>\n<\/ul>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/316414\/\"> https:\/\/habrahabr.ru\/post\/316414\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u0440\u043e <code>grep<\/code> \u0437\u043d\u0430\u044e\u0442 \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u0441\u0435, \u0442\u043e <a href=\"https:\/\/habrahabr.ru\/post\/229501\/\">\u043c\u043d\u043e\u0433\u0438\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0425\u0430\u0431\u0440\u0430<\/a>, \u043e\u0434\u043d\u0430\u043a\u043e \u0435\u0433\u043e \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u043e\u0432 \u0437\u043d\u0430\u044e\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0435. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e75\/a77\/bd2\/e75a77bd22b042a5a8a7abbf4eacac81.png\"\/>  <\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0443\u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0433\u0440\u0435\u043f\u0430\u0442\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u0442\u0430\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0445\u043e\u0442\u044c \u043a\u0440\u0443\u043f\u0438\u0446\u0443 \u0442\u0435\u043a\u0441\u0442\u0430.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-281813","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/281813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=281813"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/281813\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=281813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=281813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=281813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}