{"id":541,"date":"2024-12-08T00:54:43","date_gmt":"2024-12-07T22:54:43","guid":{"rendered":"https:\/\/grummfy.be\/blog\/?p=541"},"modified":"2024-12-08T00:54:43","modified_gmt":"2024-12-07T22:54:43","slug":"recherche-depub-watermarker","status":"publish","type":"post","link":"https:\/\/grummfy.be\/blog\/541","title":{"rendered":"Recherche d&rsquo;epub watermarker"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Pour un besoin r\u00e9cent, j&rsquo;avais besoin de retrouver tout les epub que j&rsquo;avais acheter chez un vendeur d&rsquo;epub qui n&rsquo;existe plus (feedbooks). Du coup, j&rsquo;ai fait un script pour aller chercher dans ma biblioth\u00e8que. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\nif &#91; $# -lt 2 ]\nthen\n\techo\n\techo \"Usage: ${0} &lt;path-to-epub-directory (aka calibre root biblio)> &lt;name to search>\"\n\techo \"export VERBOSE=1 to add verbosity or VERBOSE=1 ${0} ...\"\n\techo\n\texit\nfi\n\nCUR_DIR=$(dirname \"$0\")\nPATH_TO_SEARCH=$1\nPATTERN_TO_SEARCH=$2\n\necho \"Searching in ${PATH_TO_SEARCH} about ${PATTERN_TO_SEARCH}...\"\n\nmapfile FILES &lt; &lt;(find \"$PATH_TO_SEARCH\" -type f -name '*.epub')\n\nN=\"${#FILES&#91;@]}\"\n\necho \"... found ${N} epubs!\"\n\nfor ((I=0; I&lt;N; I++))\ndo\n\tepub_file=$(echo \"${CUR_DIR}\/${FILES&#91;$I]}\" | sed 's\/\\n\/\/')\n\tfileloc=$(unzip -l \"${epub_file}\" | grep -o 'OEBPS\/.*.xhtml')\n\tfound=0\n\tfor xhtml in $fileloc\n\tdo\n\t\tmetafound=$(zipgrep \"${PATTERN_TO_SEARCH}\" \"${epub_file}\" \"${xhtml}\")\n\t\tif &#91; \"$metafound\" != \"\" ]; then\n\t\t\t# display only once that we have found it\n\t\t\tif &#91;&#91; \"$found\" -eq \"0\" ]]; then\n\t\t\t\techo \"Found in ${epub_file}\"\n\t\t\tfi\n\n\t\t\tfound=1\n\t\t\tif &#91;&#91; \"$VERBOSE\" -eq \"1\" ]]; then\n\t\t\t\tprintf \"\\t|_ %s\\n\" \"$metafound\"\n\t\t\telse\n\t\t\t\tbreak\n\t\t\tfi\n\t\tfi\n\tdone\ndone\n\necho\necho 'EOL'\necho\nexit\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On ne sait jamais que cela vous serve<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour un besoin r\u00e9cent, j&rsquo;avais besoin de retrouver tout les epub que j&rsquo;avais acheter chez un vendeur d&rsquo;epub qui n&rsquo;existe plus (feedbooks). Du coup, j&rsquo;ai fait un script pour aller chercher dans ma biblioth\u00e8que. On ne sait jamais que cela vous serve<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-541","post","type-post","status-publish","format-standard","hentry","category-general"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"Pour un besoin r\u00e9cent, j&#039;avais besoin de retrouver tout les epub que j&#039;avais acheter chez un vendeur d&#039;epub qui n&#039;existe plus (feedbooks). Du coup, j&#039;ai fait un script pour aller chercher dans ma biblioth\u00e8que. #!\/bin\/bash if [ $# -lt 2 ] then echo echo &quot;Usage: ${0} &quot; echo\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Grummfy\"\/>\n\t<meta name=\"google-site-verification\" content=\"d4qc9gnvtzVc9s5gDVkEqZIVZLo42Wi\/lYmFP7\/G0Kw=\" \/>\n\t<meta name=\"keywords\" content=\"general\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/grummfy.be\/blog\/541\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Grummfy&#039;s project\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Grummfy&#039;s project .:. Recherche d\u2019epub watermarker\" \/>\n\t\t<meta property=\"og:description\" content=\"Pour un besoin r\u00e9cent, j&#039;avais besoin de retrouver tout les epub que j&#039;avais acheter chez un vendeur d&#039;epub qui n&#039;existe plus (feedbooks). Du coup, j&#039;ai fait un script pour aller chercher dans ma biblioth\u00e8que. #!\/bin\/bash if [ $# -lt 2 ] then echo echo &quot;Usage: ${0} &quot; echo\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/grummfy.be\/blog\/541\" \/>\n\t\t<meta property=\"fb:admins\" content=\"580961199\" \/>\n\t\t<meta property=\"article:tag\" content=\"general\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-12-07T22:54:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-12-07T22:54:43+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@Grummfy\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Grummfy&#039;s project .:. Recherche d\u2019epub watermarker\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Pour un besoin r\u00e9cent, j&#039;avais besoin de retrouver tout les epub que j&#039;avais acheter chez un vendeur d&#039;epub qui n&#039;existe plus (feedbooks). Du coup, j&#039;ai fait un script pour aller chercher dans ma biblioth\u00e8que. #!\/bin\/bash if [ $# -lt 2 ] then echo echo &quot;Usage: ${0} &quot; echo\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/541#article\",\"name\":\"Grummfy's project .:. Recherche d\\u2019epub watermarker\",\"headline\":\"Recherche d&rsquo;epub watermarker\",\"author\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/author\\\/admin#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/#organization\"},\"datePublished\":\"2024-12-08T00:54:43+02:00\",\"dateModified\":\"2024-12-08T00:54:43+02:00\",\"inLanguage\":\"fr-BE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/541#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/541#webpage\"},\"articleSection\":\"General\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/541#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog#listItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/grummfy.be\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/cat\\\/general#listItem\",\"name\":\"General\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/cat\\\/general#listItem\",\"position\":2,\"name\":\"General\",\"item\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/cat\\\/general\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/541#listItem\",\"name\":\"Recherche d&rsquo;epub watermarker\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog#listItem\",\"name\":\"Accueil\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/541#listItem\",\"position\":3,\"name\":\"Recherche d&rsquo;epub watermarker\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/cat\\\/general#listItem\",\"name\":\"General\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/#organization\",\"name\":\"Grummfy's project\",\"description\":\"Mes projets, mes r\\u00eaves, mes envies, ...\",\"url\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/author\\\/admin#author\",\"url\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/author\\\/admin\",\"name\":\"Grummfy\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/541#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/97f073e7de2fb1e9d5c5329eb7db2c6de1c5a80e8cfe9b1233473f78a1c908f6?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Grummfy\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/541#webpage\",\"url\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/541\",\"name\":\"Grummfy's project .:. Recherche d\\u2019epub watermarker\",\"description\":\"Pour un besoin r\\u00e9cent, j'avais besoin de retrouver tout les epub que j'avais acheter chez un vendeur d'epub qui n'existe plus (feedbooks). Du coup, j'ai fait un script pour aller chercher dans ma biblioth\\u00e8que. #!\\\/bin\\\/bash if [ $# -lt 2 ] then echo echo \\\"Usage: ${0} \\\" echo\",\"inLanguage\":\"fr-BE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/541#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/author\\\/admin#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/author\\\/admin#author\"},\"datePublished\":\"2024-12-08T00:54:43+02:00\",\"dateModified\":\"2024-12-08T00:54:43+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/\",\"name\":\"Grummfy's project\",\"description\":\"Mes projets, mes r\\u00eaves, mes envies, ...\",\"inLanguage\":\"fr-BE\",\"publisher\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Grummfy's project .:. Recherche d\u2019epub watermarker","description":"Pour un besoin r\u00e9cent, j'avais besoin de retrouver tout les epub que j'avais acheter chez un vendeur d'epub qui n'existe plus (feedbooks). Du coup, j'ai fait un script pour aller chercher dans ma biblioth\u00e8que. #!\/bin\/bash if [ $# -lt 2 ] then echo echo \"Usage: ${0} \" echo","canonical_url":"https:\/\/grummfy.be\/blog\/541","robots":"max-image-preview:large","keywords":"general","webmasterTools":{"google-site-verification":"d4qc9gnvtzVc9s5gDVkEqZIVZLo42Wi\/lYmFP7\/G0Kw=","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/grummfy.be\/blog\/541#article","name":"Grummfy's project .:. Recherche d\u2019epub watermarker","headline":"Recherche d&rsquo;epub watermarker","author":{"@id":"https:\/\/grummfy.be\/blog\/author\/admin#author"},"publisher":{"@id":"https:\/\/grummfy.be\/blog\/#organization"},"datePublished":"2024-12-08T00:54:43+02:00","dateModified":"2024-12-08T00:54:43+02:00","inLanguage":"fr-BE","mainEntityOfPage":{"@id":"https:\/\/grummfy.be\/blog\/541#webpage"},"isPartOf":{"@id":"https:\/\/grummfy.be\/blog\/541#webpage"},"articleSection":"General"},{"@type":"BreadcrumbList","@id":"https:\/\/grummfy.be\/blog\/541#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog#listItem","position":1,"name":"Accueil","item":"https:\/\/grummfy.be\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog\/cat\/general#listItem","name":"General"}},{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog\/cat\/general#listItem","position":2,"name":"General","item":"https:\/\/grummfy.be\/blog\/cat\/general","nextItem":{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog\/541#listItem","name":"Recherche d&rsquo;epub watermarker"},"previousItem":{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog#listItem","name":"Accueil"}},{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog\/541#listItem","position":3,"name":"Recherche d&rsquo;epub watermarker","previousItem":{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog\/cat\/general#listItem","name":"General"}}]},{"@type":"Organization","@id":"https:\/\/grummfy.be\/blog\/#organization","name":"Grummfy's project","description":"Mes projets, mes r\u00eaves, mes envies, ...","url":"https:\/\/grummfy.be\/blog\/"},{"@type":"Person","@id":"https:\/\/grummfy.be\/blog\/author\/admin#author","url":"https:\/\/grummfy.be\/blog\/author\/admin","name":"Grummfy","image":{"@type":"ImageObject","@id":"https:\/\/grummfy.be\/blog\/541#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/97f073e7de2fb1e9d5c5329eb7db2c6de1c5a80e8cfe9b1233473f78a1c908f6?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Grummfy"}},{"@type":"WebPage","@id":"https:\/\/grummfy.be\/blog\/541#webpage","url":"https:\/\/grummfy.be\/blog\/541","name":"Grummfy's project .:. Recherche d\u2019epub watermarker","description":"Pour un besoin r\u00e9cent, j'avais besoin de retrouver tout les epub que j'avais acheter chez un vendeur d'epub qui n'existe plus (feedbooks). Du coup, j'ai fait un script pour aller chercher dans ma biblioth\u00e8que. #!\/bin\/bash if [ $# -lt 2 ] then echo echo \"Usage: ${0} \" echo","inLanguage":"fr-BE","isPartOf":{"@id":"https:\/\/grummfy.be\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/grummfy.be\/blog\/541#breadcrumblist"},"author":{"@id":"https:\/\/grummfy.be\/blog\/author\/admin#author"},"creator":{"@id":"https:\/\/grummfy.be\/blog\/author\/admin#author"},"datePublished":"2024-12-08T00:54:43+02:00","dateModified":"2024-12-08T00:54:43+02:00"},{"@type":"WebSite","@id":"https:\/\/grummfy.be\/blog\/#website","url":"https:\/\/grummfy.be\/blog\/","name":"Grummfy's project","description":"Mes projets, mes r\u00eaves, mes envies, ...","inLanguage":"fr-BE","publisher":{"@id":"https:\/\/grummfy.be\/blog\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"Grummfy's project","og:type":"article","og:title":"Grummfy's project .:. Recherche d\u2019epub watermarker","og:description":"Pour un besoin r\u00e9cent, j'avais besoin de retrouver tout les epub que j'avais acheter chez un vendeur d'epub qui n'existe plus (feedbooks). Du coup, j'ai fait un script pour aller chercher dans ma biblioth\u00e8que. #!\/bin\/bash if [ $# -lt 2 ] then echo echo &quot;Usage: ${0} &quot; echo","og:url":"https:\/\/grummfy.be\/blog\/541","fb:admins":"580961199","article:tag":["general"],"article:published_time":"2024-12-07T22:54:43+00:00","article:modified_time":"2024-12-07T22:54:43+00:00","twitter:card":"summary","twitter:site":"@Grummfy","twitter:title":"Grummfy's project .:. Recherche d\u2019epub watermarker","twitter:description":"Pour un besoin r\u00e9cent, j'avais besoin de retrouver tout les epub que j'avais acheter chez un vendeur d'epub qui n'existe plus (feedbooks). Du coup, j'ai fait un script pour aller chercher dans ma biblioth\u00e8que. #!\/bin\/bash if [ $# -lt 2 ] then echo echo &quot;Usage: ${0} &quot; echo"},"aioseo_meta_data":{"post_id":"541","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2024-12-07 22:51:58","updated":"2025-06-04 00:27:14","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/grummfy.be\/blog\" title=\"Accueil\">Accueil<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/grummfy.be\/blog\/cat\/general\" title=\"General\">General<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tRecherche d\u2019epub watermarker\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Accueil","link":"https:\/\/grummfy.be\/blog"},{"label":"General","link":"https:\/\/grummfy.be\/blog\/cat\/general"},{"label":"Recherche d&rsquo;epub watermarker","link":"https:\/\/grummfy.be\/blog\/541"}],"_links":{"self":[{"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/posts\/541","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/comments?post=541"}],"version-history":[{"count":1,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/posts\/541\/revisions"}],"predecessor-version":[{"id":542,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/posts\/541\/revisions\/542"}],"wp:attachment":[{"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/media?parent=541"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/categories?post=541"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/tags?post=541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}