{"id":58344,"date":"2023-02-14T03:01:13","date_gmt":"2023-02-13T17:01:13","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=58344"},"modified":"2023-02-13T14:45:06","modified_gmt":"2023-02-13T04:45:06","slug":"korn-shell-pdf-hyperlink-listener-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/korn-shell-pdf-hyperlink-listener-tutorial\/","title":{"rendered":"Korn Shell PDF Hyperlink Listener Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/lookforhyperlinks_pdf.jpg\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Korn Shell PDF Hyperlink Listener Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/lookforhyperlinks_pdf.jpg\" title=\"Korn Shell PDF Hyperlink Listener Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Korn Shell PDF Hyperlink Listener Tutorial<\/p><\/div>\n<p>Onto the recent <a title='Korn Shell Spreadsheet Hyperlink Listener Tutorial' href='#ksshlt'>Korn Shell Spreadsheet Hyperlink Listener Tutorial<\/a>&#8216;s &#8230;<\/p>\n<ul>\n<li>talent to read Spreadsheet files and extract hyperlink data &#8230; today, we add to the talents, the &#8230;<\/li>\n<li>talent to read PDF files and extract hyperlink data<\/li>\n<\/ul>\n<p> &#8230; being as a lot of us are downloading PDF files on a pretty regular basis.<\/p>\n<p>We figure there&#8217;s not enough, of complexity, to worry about here that we can&#8217;t <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/lookforhyperlinks.ksh-GETME\">incorporate the new &#8220;talents&#8221;<\/a> into the previous <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/lookforhyperlinks.ksh-GETME\">lookforhyperlinks.ksh<\/a> Korn Shell code suited to macOS users &#8230;<\/p>\n<p><code><br \/>\n#!\/bin\/ksh<br \/>\n# lookforhyperlinks.ksh<br \/>\n# RJM Programming<br \/>\n# February, 2023<br \/>\n# Look for hyperlinks in downloaded Spreadsheets<br \/>\n# crontab usage supply an additional argument (onto a first emailee argument, perhaps) ... or to do as a one off execution usage<br \/>\n# Thanks to ...<br \/>\n#   https:\/\/www.unix.com\/unix-for-dummies-questions-and-answers\/123644-converting-binary-file-readable-format-ksh.html<br \/>\n#   https:\/\/stackoverflow.com\/questions\/26968159\/list-of-files-modified-1-hour-before<br \/>\n#   https:\/\/www.unix.com\/shell-programming-and-scripting\/247464-awk-combined-if.html<br \/>\n#   https:\/\/stackoverflow.com\/questions\/296536\/how-to-urlencode-data-for-curl-command<br \/>\n<br \/>\nmodeopencurl=\"open\";<br \/>\none=\"1\";<br \/>\ntwo=\"2\";<br \/>\nqt=\"\\\"\";<br \/>\nemailto=\"\";<br \/>\nif [ ! -z \"$1\" ]; then<br \/>\n if [ \"`echo $1`\" == \"curl\" ]; then<br \/>\n   modeopencurl=\"curl\";<br \/>\n   shift;<br \/>\n fi<br \/>\nfi<br \/>\nif [ ! -z \"$1\" ]; then<br \/>\n if [ \"`echo $1 | tr '@' 'x'`\" != \"`echo $1`\" ]; then<br \/>\n   emailto=\"$1\";<br \/>\n   shift;<br \/>\n fi<br \/>\nfi<br \/>\n<br \/>\nwhile test \"$one\" -ne \"$two\" ; do<br \/>\n  axls=`find $HOME\/Downloads -name \"*.[xXpP][lLdD][sSfF]*\" -type f -mmin 1`;<br \/>\n  if [ ! -z \"$axls\" ]; then<br \/>\n   if [ \"`echo $axls | sed -e 's\/f$\/\/g' | sed -e 's\/F$\/\/g'`\" = \"`echo $axls`\" ]; then<br \/>\n   res=`hexdump -C  \"${axls}\" | sed '\/[.][|][.]\/s\/\/.!@!.\/g'  | cut -f2 -d '|' | sed '\/[.][!][@][!][.]\/s\/\/.|.\/g' | tr -d '\\n' | sed -e 's\/=.s.a.y.\/=.S.a.Y.\/g' | tr -d \"'\" | cut -d':' -f 2- | grep '.h.t.t.p.' | sed '\/[.][.][.][.]\/s\/\/&gt;\/g' | sed '\/[%][.]2[.]0\/s\/\/\"\/g' | awk -F'.h.t.t.p.' '{for(i=2;i&lt;=NF;i++){if($i){split($i,a,\"&gt;\");print \"http\" a[1] \"@\";}}}' | sed '\/[.][.]\/s\/\/.&gt;\/g' | sed '\/[.]\/s\/\/\/g' | sed '\/[&gt;]\/s\/\/.\/g' | sed '\/\\_record\\.php\\?docronwork\\=\\@\/s\/\/SaY\/g' | sed '\/[@]\/s\/\/\";\\n\/g'`<br \/>\n   else<br \/>\n   res=`hexdump -C  \"${axls}\" | sed '\/[.][|][.]\/s\/\/.!@!.\/g'  | cut -f2 -d '|' | sed '\/[.][!][@][!][.]\/s\/\/.|.\/g' | tr -d '\\n' | sed -e 's\/=.s.a.y.\/=.S.a.Y.\/g' | tr -d \"'\" | cut -d':' -f 2- | grep '.http' | sed '\/[.][.][.][.]\/s\/\/&gt;\/g' | sed '\/[%][.]2[.]0\/s\/\/\"\/g' | awk -F'.http' '{for(i=2;i&lt;=NF;i++){if($i){split($i,a,\"&gt;\");print \"http\" a[1] \"@\";}}}' | sed '\/[.][.]\/s\/\/.&gt;\/g' | sed '\/[.]\/s\/\/\/g' | sed '\/[&gt;]\/s\/\/.\/g' | sed '\/\\_record\\.php\\?docronwork\\=\\@\/s\/\/SaY\/g' | sed '\/[@]\/s\/\/\";\\n\/g'`<br \/>\n   fi<br \/>\n   if [ ! -z \"$res\" ]; then<br \/>\n    if [ -z \"$1\" -a -z \"$emailto\" ]; then<br \/>\n     if [ \"$modeopencurl\" = \"curl\" ]; then<br \/>\n     echo $res | sed -e 's\/ http\/\"; \\ncurl \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"curl \\\"http\")} 1' | sed -e 's\/\";\";\"\/\";\/g' | sed -e 's\/\";\";\"\/\";\/g' | sed -e 's\/\"\";\/\";\/g' | sed -e 's\/\";\";\/\";\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n     else<br \/>\n     echo $res | sed -e 's\/ http\/\"; \\nopen \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"open \\\"http\")} 1' | sed -e 's\/\";\";\"\/\";\/g' | sed -e 's\/\";\";\"\/\";\/g' | sed -e 's\/\"\";\/\";\/g' | sed -e 's\/\";\";\/\";\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n     fi<br \/>\n     ksh \/tmp\/ideatwo.ksh &amp;<br \/>\n    else<br \/>\n     if [ ! -z \"$emailto\" ]; then  # no  -e 's\/=\/%3d\/g' below<br \/>\n      echo $res | sed -e 's\/\";\";\\n\/\\n\/g' | sed -e 's\/\";\\n\/\\n\/g' | sed -e 's\/&lt;\/%3c\/g' -e 's\/%\/%25\/g' -e 's\/ \/%20\/g' -e 's\/!\/%21\/g' -e 's\/\"\/%22\/g' -e 's\/#\/%23\/g' -e 's\/\\$\/%24\/g' -e 's\/\\&\/%26\/g' -e 's\/'\\''\/%27\/g' -e 's\/(\/%28\/g' -e 's\/)\/%29\/g' -e 's\/\\*\/%2a\/g' -e 's\/+\/%2b\/g' -e 's\/,\/%2c\/g' -e 's\/-\/%2d\/g' -e 's\/\\.\/%2e\/g' -e 's\/\\\/\/%2f\/g' -e 's\/:\/%3a\/g' -e 's\/;\/%3b%0a%0a\/g' -e 's\/\/%3e\/g' -e 's\/?\/%3f\/g' -e 's\/@\/%40\/g' -e 's\/\\[\/%5b\/g' -e 's\/\\\\\/%5c\/g' -e 's\/\\]\/%5d\/g' -e 's\/\\^\/%5e\/g' -e 's\/_\/%5f\/g' -e 's\/`\/%60\/g' -e 's\/{\/%7b\/g' -e 's\/|\/%7c\/g' -e 's\/}\/%7d\/g' -e 's\/~\/%7e\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n      bxls=`echo \"$axls\" | sed -e 's\/&lt;\/%3c\/g' -e 's\/%\/%25\/g' -e 's\/ \/%20\/g' -e 's\/!\/%21\/g' -e 's\/\"\/%22\/g' -e 's\/#\/%23\/g' -e 's\/\\$\/%24\/g' -e 's\/\\&\/%26\/g' -e 's\/'\\''\/%27\/g' -e 's\/(\/%28\/g' -e 's\/)\/%29\/g' -e 's\/\\*\/%2a\/g' -e 's\/+\/%2b\/g' -e 's\/,\/%2c\/g' -e 's\/-\/%2d\/g' -e 's\/\\.\/%2e\/g' -e 's\/\\\/\/%2f\/g' -e 's\/:\/%3a\/g' -e 's\/;\/%3b%0a%0a\/g' -e 's\/\/%3e\/g' -e 's\/?\/%3f\/g' -e 's\/@\/%40\/g' -e 's\/\\[\/%5b\/g' -e 's\/\\\\\\\\\/%5c\/g' -e 's\/\\]\/%5d\/g' -e 's\/\\^\/%5e\/g' -e 's\/_\/%5f\/g' -e 's\/{\/%7b\/g' -e 's\/|\/%7c\/g' -e 's\/}\/%7d\/g' -e 's\/~\/%7e\/g' | tr -d '$'`<br \/>\n      # restwo=`echo $res | sed '\/\"\/s\/\/@\/g' | sed \"\/@\/s\/\/'\/g\"`<br \/>\n      #cat \/tmp\/idea.ksh | mailx -s \"Proposed macos say audio ideas ...\" $1;<br \/>\n      open \"mailto:${emailto}?subject=Proposed%20hyperlinks%20in%20downloaded%20spreadsheet%20`echo ${bxls}`%20...&body=`cat \/tmp\/ideatwo.ksh`\"<br \/>\n      if [ \"$modeopencurl\" = \"curl\" ]; then<br \/>\n      echo $res | sed -e 's\/ http\/\"; \\ncurl \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"curl \\\"http\")} 1' | sed -e 's\/\";\";\"\/\";\/g' | sed -e 's\/\";\";\"\/\";\/g' | sed -e 's\/\"\";\/\";\/g' | sed -e 's\/\";\";\/\";\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n      else<br \/>\n      echo $res | sed -e 's\/ http\/\"; \\nopen \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"open \\\"http\")} 1' | sed -e 's\/\";\";\"\/\";\/g' | sed -e 's\/\";\";\"\/\";\/g' | sed -e 's\/\"\";\/\";\/g' | sed -e 's\/\";\";\/\";\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n      fi<br \/>\n     else<br \/>\n      if [ \"$modeopencurl\" = \"curl\" ]; then<br \/>\n      echo $res | sed -e 's\/ http\/\"; \\ncurl \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"curl \\\"http\")} 1' | sed -e 's\/\";\";\"\/\";\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n      else<br \/>\n      echo $res | sed -e 's\/ http\/\"; \\nopen \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"open \\\"http\")} 1' | sed -e 's\/\";\";\"\/\";\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n      fi<br \/>\n      ksh \/tmp\/ideatwo.ksh &amp;<br \/>\n     fi<br \/>\n    fi<br \/>\n   fi<br \/>\n  fi<br \/>\n  if [ -z \"$1\" ]; then<br \/>\n   sleep 60<br \/>\n  else<br \/>\n   two=$one<br \/>\n  fi<br \/>\ndone<br \/>\nexit<br \/>\n<\/code><\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=_blank  href='\/\/www.rjmprogramming.com.au\/ITblog\/korn-shell-pdf-hyperlink-listener-tutorial\/'>Korn Shell PDF Hyperlink Listener Tutorial<\/a>.<\/p-->\n<hr>\n<p id='ksshlt'>Previous relevant <a target=_blank title='Korn Shell Spreadsheet Hyperlink Listener Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/korn-shell-spreadsheet-hyperlink-listener-tutorial\/'>Korn Shell Spreadsheet Hyperlink Listener Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/lookforhyperlinks.jpg\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Korn Shell Spreadsheet Hyperlink Listener Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/lookforhyperlinks.jpg\" title=\"Korn Shell Spreadsheet Hyperlink Listener Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Korn Shell Spreadsheet Hyperlink Listener Tutorial<\/p><\/div>\n<p>We want to build on the &#8220;listener&#8221; thoughts of yesterday&#8217;s <a title='Perl CGI Spreadsheet Download Detector Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/perl-cgi-spreadsheet-download-detector-tutorial\/'>Perl CGI Spreadsheet Download Detector Tutorial<\/a>&#8216;s &#8230;<\/p>\n<ul>\n<li>Korn Shell based &#8220;listener&#8221; of macOS Spreadsheet download &#8220;say&#8221; audio hyperlinks &#8230; to genericize, today, with &#8230;<\/li>\n<li>Korn Shell based &#8220;listener&#8221; of macOS Spreadsheet download with any hyperlink URL for any downloaded Spreadsheet<\/li>\n<\/ul>\n<p> &#8230; as a product feeling more like a tool.<\/p>\n<p>Yesterday&#8217;s work, with all the help, thanks, gave us a good framework to tweak, further, a scheduled and interactive combination of modes of use, used in Korn Shell <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/lookforhyperlinks.ksh_GETME\">lookforhyperlinks.ksh<\/a> &#8230;<\/p>\n<p><code><br \/>\n#!\/bin\/ksh<br \/>\n# lookforhyperlinks.ksh<br \/>\n# RJM Programming<br \/>\n# February, 2023<br \/>\n# Look for hyperlinks in downloaded Spreadsheets<br \/>\n# crontab usage supply an additional argument (onto a first emailee argument, perhaps) ... or to do as a one off execution usage<br \/>\n# Thanks to ...<br \/>\n#   https:\/\/www.unix.com\/unix-for-dummies-questions-and-answers\/123644-converting-binary-file-readable-format-ksh.html<br \/>\n#   https:\/\/stackoverflow.com\/questions\/26968159\/list-of-files-modified-1-hour-before<br \/>\n#   https:\/\/www.unix.com\/shell-programming-and-scripting\/247464-awk-combined-if.html<br \/>\n#   https:\/\/stackoverflow.com\/questions\/296536\/how-to-urlencode-data-for-curl-command<br \/>\n<br \/>\nmodeopencurl=\"open\";<br \/>\none=\"1\";<br \/>\ntwo=\"2\";<br \/>\nqt=\"\\\"\";<br \/>\nemailto=\"\";<br \/>\nif [ ! -z \"$1\" ]; then<br \/>\n if [ \"`echo $1`\" == \"curl\" ]; then<br \/>\n   modeopencurl=\"curl\";<br \/>\n   shift;<br \/>\n fi<br \/>\nfi<br \/>\nif [ ! -z \"$1\" ]; then<br \/>\n if [ \"`echo $1 | tr '@' 'x'`\" != \"`echo $1`\" ]; then<br \/>\n   emailto=\"$1\";<br \/>\n   shift;<br \/>\n fi<br \/>\nfi<br \/>\n<br \/>\nwhile test \"$one\" -ne \"$two\" ; do<br \/>\n  axls=`find $HOME\/Downloads -name \"*.xls*\" -type f -mmin 1`;<br \/>\n  if [ ! -z \"$axls\" ]; then<br \/>\n   res=`hexdump -C  \"${axls}\" | sed '\/[.][|][.]\/s\/\/.!@!.\/g'  | cut -f2 -d '|' | sed '\/[.][!][@][!][.]\/s\/\/.|.\/g' | tr -d '\\n' | sed -e 's\/=.s.a.y.\/=.S.a.Y.\/g' | tr -d \"'\" | cut -d':' -f 2- | grep '.h.t.t.p.' | sed '\/[.][.][.][.]\/s\/\/~\/g' | sed '\/[%][.]2[.]0\/s\/\/\"\/g' | awk -F'.h.t.t.p.' '{for(i=2;i&lt;=NF;i++){if($i){split($i,a,\"~\");print \"http\" a[1] \"@\";}}}' | sed '\/[.][.]\/s\/\/.~\/g' | sed '\/[.]\/s\/\/\/g' | sed '\/[~]\/s\/\/.\/g' | sed '\/\\_record\\.php\\?docronwork\\=\\@\/s\/\/SaY\/g' | sed '\/[@]\/s\/\/\";\\n\/g'`<br \/>\n   if [ ! -z \"$res\" ]; then<br \/>\n    if [ -z \"$1\" -a -z \"$emailto\" ]; then<br \/>\n     if [ \"$modeopencurl\" = \"curl\" ]; then<br \/>\n     echo $res | sed -e 's\/ http\/\"; \\ncurl \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"curl \\\"http\")} 1' | sed -e 's\/\";\";\"\/;\"\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n     else<br \/>\n     echo $res | sed -e 's\/ http\/\"; \\nopen \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"open \\\"http\")} 1' | sed -e 's\/\";\";\"\/;\"\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n     fi<br \/>\n     ksh \/tmp\/ideatwo.ksh &<br \/>\n    else<br \/>\n     if [ ! -z \"$emailto\" ]; then  # no  -e 's\/=\/%3d\/g' below<br \/>\n      echo $res | sed -e 's\/\";\";\\n\/\\n\/g' | sed -e 's\/\";\\n\/\\n\/g' | sed -e 's\/&lt;\/%3c\/g' -e 's\/%\/%25\/g' -e 's\/ \/%20\/g' -e 's\/!\/%21\/g' -e 's\/\"\/%22\/g' -e 's\/#\/%23\/g' -e 's\/\\$\/%24\/g' -e 's\/\\&\/%26\/g' -e 's\/'\\''\/%27\/g' -e 's\/(\/%28\/g' -e 's\/)\/%29\/g' -e 's\/\\*\/%2a\/g' -e 's\/+\/%2b\/g' -e 's\/,\/%2c\/g' -e 's\/-\/%2d\/g' -e 's\/\\.\/%2e\/g' -e 's\/\\\/\/%2f\/g' -e 's\/:\/%3a\/g' -e 's\/;\/%3b%0a%0a\/g' -e 's\/\/%3e\/g' -e 's\/?\/%3f\/g' -e 's\/@\/%40\/g' -e 's\/\\[\/%5b\/g' -e 's\/\\\\\/%5c\/g' -e 's\/\\]\/%5d\/g' -e 's\/\\^\/%5e\/g' -e 's\/_\/%5f\/g' -e 's\/`\/%60\/g' -e 's\/{\/%7b\/g' -e 's\/|\/%7c\/g' -e 's\/}\/%7d\/g' -e 's\/~\/%7e\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n      bxls=`echo \"$axls\" | sed -e 's\/&lt;\/%3c\/g' -e 's\/%\/%25\/g' -e 's\/ \/%20\/g' -e 's\/!\/%21\/g' -e 's\/\"\/%22\/g' -e 's\/#\/%23\/g' -e 's\/\\$\/%24\/g' -e 's\/\\&\/%26\/g' -e 's\/'\\''\/%27\/g' -e 's\/(\/%28\/g' -e 's\/)\/%29\/g' -e 's\/\\*\/%2a\/g' -e 's\/+\/%2b\/g' -e 's\/,\/%2c\/g' -e 's\/-\/%2d\/g' -e 's\/\\.\/%2e\/g' -e 's\/\\\/\/%2f\/g' -e 's\/:\/%3a\/g' -e 's\/;\/%3b%0a%0a\/g' -e 's\/\/%3e\/g' -e 's\/?\/%3f\/g' -e 's\/@\/%40\/g' -e 's\/\\[\/%5b\/g' -e 's\/\\\\\\\\\/%5c\/g' -e 's\/\\]\/%5d\/g' -e 's\/\\^\/%5e\/g' -e 's\/_\/%5f\/g' -e 's\/{\/%7b\/g' -e 's\/|\/%7c\/g' -e 's\/}\/%7d\/g' -e 's\/~\/%7e\/g' | tr -d '$'`<br \/>\n      # restwo=`echo $res | sed '\/\"\/s\/\/@\/g' | sed \"\/@\/s\/\/'\/g\"`<br \/>\n      #cat \/tmp\/idea.ksh | mailx -s \"Proposed macos say audio ideas ...\" $1;<br \/>\n      open \"mailto:${emailto}?subject=Proposed%20hyperlinks%20in%20downloaded%20spreadsheet%20`echo ${bxls}`%20...&body=`cat \/tmp\/ideatwo.ksh`\"<br \/>\n      if [ \"$modeopencurl\" = \"curl\" ]; then<br \/>\n      echo $res | sed -e 's\/ http\/\"; \\ncurl \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"curl \\\"http\")} 1' | sed -e 's\/\";\";\"\/;\"\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n      else<br \/>\n      echo $res | sed -e 's\/ http\/\"; \\nopen \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"open \\\"http\")} 1' | sed -e 's\/\";\";\"\/;\"\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n      fi<br \/>\n     else<br \/>\n      if [ \"$modeopencurl\" = \"curl\" ]; then<br \/>\n      echo $res | sed -e 's\/ http\/\"; \\ncurl \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"curl \\\"http\")} 1' | sed -e 's\/\";\";\"\/;\"\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n      else<br \/>\n      echo $res | sed -e 's\/ http\/\"; \\nopen \"http\/g' | awk 'NR==1,\/http\/{sub(\/http\/, \"open \\\"http\")} 1' | sed -e 's\/\";\";\"\/;\"\/g' &gt; \/tmp\/ideatwo.ksh<br \/>\n      fi<br \/>\n      ksh \/tmp\/ideatwo.ksh &<br \/>\n     fi<br \/>\n    fi<br \/>\n   fi<br \/>\n  fi<br \/>\n  if [ -z \"$1\" ]; then<br \/>\n   sleep 60<br \/>\n  else<br \/>\n   two=$one<br \/>\n  fi<br \/>\ndone<br \/>\nexit<br \/>\n<\/code><\/p>\n<p> &#8230; usable for macOS command &#8220;verbs&#8221; <a target=_blank title='macOS open' href='https:\/\/scriptingosx.com\/2017\/02\/the-macos-open-command\/'><i>open<\/i><\/a> or <a target=_blank title='Linux or unix curl information from computerhope' href='http:\/\/www.computerhope.com\/unix\/curl.htm'><i>curl<\/i><\/a> &#8230;<\/p>\n<table style=font-size:7px;>\n<tr>\n<th>Interactive<br \/>continuous<br \/>open URL<\/th>\n<th>Interactive<br \/>continuous<br \/>in background<br \/>curl URL<\/th>\n<th>Interactive<br \/>continuous<br \/>emailing<br \/>in background<br \/>open URL<\/th>\n<th>Scheduled <br \/>audio<br \/>curl URL<\/th>\n<th>Scheduled <br \/>audio <br \/>email<br \/>open URL<\/th>\n<\/tr>\n<tr>\n<td>ksh .\/lookforhyperlinks.ksh<\/td>\n<td>ksh .\/lookforhyperlinks.ksh curl &#038;<\/td>\n<td>ksh .\/lookforhyperlinks.ksh rmetcalfe15@gmail.com &#038;<\/td>\n<td>* * * * * ksh .\/lookforhyperlinks.ksh curl<\/td>\n<td>* * * * * ksh .\/lookforhyperlinks.ksh rmetcalfe15@gmail.com<\/td>\n<\/tr>\n<\/table>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=_blank  href='\/\/www.rjmprogramming.com.au\/ITblog\/korn-shell-spreadsheet-hyperlink-listener-tutorial\/'>Korn Shell Spreadsheet Hyperlink Listener Tutorial<\/a>.<\/p-->\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d58329' onclick='var dv=document.getElementById(\"d58329\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/listener\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d58329' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d58344' onclick='var dv=document.getElementById(\"d58344\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/pdf\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d58344' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Onto the recent Korn Shell Spreadsheet Hyperlink Listener Tutorial&#8216;s &#8230; talent to read Spreadsheet files and extract hyperlink data &#8230; today, we add to the talents, the &#8230; talent to read PDF files and extract hyperlink data &#8230; being as &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/korn-shell-pdf-hyperlink-listener-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,29,37],"tags":[233,234,272,274,284,360,380,4227,677,2114,2178,4060,3049,885,913,997,1105,1185,1319],"class_list":["post-58344","post","type-post","status-publish","format-standard","hentry","category-elearning","category-operating-system","category-tutorials","tag-command","tag-command-line","tag-cron","tag-crontab","tag-curl","tag-download","tag-email","tag-korn","tag-korn-shell","tag-listener","tag-macos","tag-modes-of-use","tag-open","tag-operating-system-2","tag-pdf","tag-programming","tag-script","tag-spreadsheet","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/58344"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=58344"}],"version-history":[{"count":4,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/58344\/revisions"}],"predecessor-version":[{"id":58348,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/58344\/revisions\/58348"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=58344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=58344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=58344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}