* Absolute path in for loop / output? @ 2021-09-07 15:21 Martin Post [not found] ` <78489a20-5148-4826-ab6a-b43fa48938d4n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Martin Post @ 2021-09-07 15:21 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1.1: Type: text/plain, Size: 1091 bytes --] I need to use Pandoc with absolute input and output paths in a shell script, like so: #!/bin/bash for f in "/users/myname/desktop/test/input/"*.md; \ do \ pandoc "$f" \ --standalone \ -o "/users/myname/desktop/test/output/"${f%.md}.htm; \ done … which gives an error: /users/myname/desktop/test/output//users/myname/desktop/test/input/1.htm: openFile: does not exist (No such file or directory) (Removing the output path will render the files in the source directory, as expected.) I realise the problem is probably my limited understanding of how the shell works, not something with Pandoc. I still hope someone here can help. Thank you. -- You received this message because you are subscribed to the Google Groups "pandoc-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/78489a20-5148-4826-ab6a-b43fa48938d4n%40googlegroups.com. [-- Attachment #1.2: Type: text/html, Size: 1567 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <78489a20-5148-4826-ab6a-b43fa48938d4n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* Re: Absolute path in for loop / output? [not found] ` <78489a20-5148-4826-ab6a-b43fa48938d4n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> @ 2021-09-07 15:49 ` Bastien DUMONT 2021-09-07 17:06 ` John MacFarlane 2021-09-07 19:26 ` Marc Chantreux 2 siblings, 0 replies; 5+ messages in thread From: Bastien DUMONT @ 2021-09-07 15:49 UTC (permalink / raw) To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw The problem is purely related with your bash script, not with pandoc. You seem to have contradictory expectations about what the value of $f will be: in `pandoc "$f", you anticipate it to be "/users/myname/desktop/test/input/1.md" (which is right), while in `-o "/users/myname/desktop/test/output/"${f%.md}.htm", it is supposed to be only "1.md" (and it isn't, hence the error message). A little trick: when you have error with bash scripts, it helps to run them with `bash -xv myscript.sh` in order to see what Bash does step by step and what are the parameter values. Le Tuesday 07 September 2021 à 08:21:42AM, Martin Post a écrit : > I need to use Pandoc with absolute input and output paths in a shell script, > like so: > > #!/bin/bash > > for f in "/users/myname/desktop/test/input/"*.md; \ > do \ > pandoc "$f" \ > --standalone \ > -o "/users/myname/desktop/test/output/"${f%.md}.htm; \ > done > > … which gives an error: > > /users/myname/desktop/test/output//users/myname/desktop/test/input/1.htm: > openFile: does not exist (No such file or directory) > > (Removing the output path will render the files in the source directory, as > expected.) > > I realise the problem is probably my limited understanding of how the shell > works, not something with Pandoc. I still hope someone here can help. Thank > you. > > > -- > You received this message because you are subscribed to the Google Groups > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an email > to [1]pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To view this discussion on the web visit [2]https://groups.google.com/d/msgid/ > pandoc-discuss/78489a20-5148-4826-ab6a-b43fa48938d4n%40googlegroups.com. > > References: > > [1] mailto:pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org > [2] https://groups.google.com/d/msgid/pandoc-discuss/78489a20-5148-4826-ab6a-b43fa48938d4n%40googlegroups.com?utm_medium=email&utm_source=footer -- You received this message because you are subscribed to the Google Groups "pandoc-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/YTeKDuaTZt9ov62V%40localhost. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Absolute path in for loop / output? [not found] ` <78489a20-5148-4826-ab6a-b43fa48938d4n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2021-09-07 15:49 ` Bastien DUMONT @ 2021-09-07 17:06 ` John MacFarlane 2021-09-07 19:26 ` Marc Chantreux 2 siblings, 0 replies; 5+ messages in thread From: John MacFarlane @ 2021-09-07 17:06 UTC (permalink / raw) To: Martin Post, pandoc-discuss Here $f is going to be an absolute path. So you should not add a directory. Just use -o "${f%.md}.htm"; \ Martin Post <martinpostberlin-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes: > I need to use Pandoc with absolute input and output paths in a shell > script, like so: > > #!/bin/bash > > for f in "/users/myname/desktop/test/input/"*.md; \ > do \ > pandoc "$f" \ > --standalone \ > -o "/users/myname/desktop/test/output/"${f%.md}.htm; \ > done > > … which gives an error: > > /users/myname/desktop/test/output//users/myname/desktop/test/input/1.htm: > openFile: does not exist (No such file or directory) > > (Removing the output path will render the files in the source directory, as > expected.) > > I realise the problem is probably my limited understanding of how the shell > works, not something with Pandoc. I still hope someone here can help. Thank > you. > > -- > You received this message because you are subscribed to the Google Groups "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/78489a20-5148-4826-ab6a-b43fa48938d4n%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "pandoc-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/m25yvc48o6.fsf%40MacBook-Pro-2.hsd1.ca.comcast.net. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Absolute path in for loop / output? [not found] ` <78489a20-5148-4826-ab6a-b43fa48938d4n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2021-09-07 15:49 ` Bastien DUMONT 2021-09-07 17:06 ` John MacFarlane @ 2021-09-07 19:26 ` Marc Chantreux [not found] ` <YTe8189Jim/Iqif5-AWr1gsF+PRs9Vg2ZJzWmxBLO4URiXwcH@public.gmane.org> 2 siblings, 1 reply; 5+ messages in thread From: Marc Chantreux @ 2021-09-07 19:26 UTC (permalink / raw) To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw hello, > for f in "/users/myname/desktop/test/input/"*.md; \ > do \ > pandoc "$f" \ > --standalone \ > -o "/users/myname/desktop/test/output/"${f%.md}.htm; \ > done close :) this should do the trick: base=/users/myname/desktop/test pushd $base/input for f in *.md ; do pandoc "$f" -s -o $base/output/${f.md}.htm done popd if you use zsh and don't care about a subshell, i would have writen ( base=/users/myname/desktop/test cd $base/input for f (*.md) pandoc "$f" -s -o $base/output/$f:r.htm ) however i would like to mention make as a better solution: * a makefile to do the same job will be BASE = /users/myname/desktop/test SRCS != ls ${BASE}/input/*.md PAGES = ${SRCS:${BASE}/input/%.md=${BASE}/output/%.htm} all : ${PAGES} ${BASE}/output/%.htm: ${BASE}/input/%.md pandoc -s -o $@ $< clean:; rm -rf ${BASE}/o/* * you can just type make # build the missing pages one by one make -j4 # build the missing pages four by four make -b # rebuild every pages make clean # remove all the pages regards marc ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <YTe8189Jim/Iqif5-AWr1gsF+PRs9Vg2ZJzWmxBLO4URiXwcH@public.gmane.org>]
* Re: Absolute path in for loop / output? [not found] ` <YTe8189Jim/Iqif5-AWr1gsF+PRs9Vg2ZJzWmxBLO4URiXwcH@public.gmane.org> @ 2021-09-11 19:52 ` Martin Post 0 siblings, 0 replies; 5+ messages in thread From: Martin Post @ 2021-09-11 19:52 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1.1: Type: text/plain, Size: 1681 bytes --] Thank you, everyone. @ Marc: This is exactly what I was looking for. On Tuesday, September 7, 2021 at 9:26:24 PM UTC+2 ei...-fbXiWI9j2LLYtjvyW6yDsg@public.gmane.org wrote: > hello, > > > for f in "/users/myname/desktop/test/input/"*.md; \ > > do \ > > pandoc "$f" \ > > --standalone \ > > -o "/users/myname/desktop/test/output/"${f%.md}.htm; \ > > done > > close :) this should do the trick: > > base=/users/myname/desktop/test > pushd $base/input > for f in *.md ; do > pandoc "$f" -s -o $base/output/${f.md}.htm > done > popd > > if you use zsh and don't care about a subshell, i would have writen > > ( base=/users/myname/desktop/test > cd $base/input > for f (*.md) pandoc "$f" -s -o $base/output/$f:r.htm ) > > however i would like to mention make as a better solution: > > * a makefile to do the same job will be > > BASE = /users/myname/desktop/test > SRCS != ls ${BASE}/input/*.md > PAGES = ${SRCS:${BASE}/input/%.md=${BASE}/output/%.htm} > all : ${PAGES} > ${BASE}/output/%.htm: ${BASE}/input/%.md > pandoc -s -o $@ $< > clean:; rm -rf ${BASE}/o/* > > * you can just type > > make # build the missing pages one by one > make -j4 # build the missing pages four by four > make -b # rebuild every pages > make clean # remove all the pages > > regards > marc > -- You received this message because you are subscribed to the Google Groups "pandoc-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/0d4acc1e-9566-4d61-8c55-57055b19ae0en%40googlegroups.com. [-- Attachment #1.2: Type: text/html, Size: 2552 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-09-11 19:52 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-09-07 15:21 Absolute path in for loop / output? Martin Post [not found] ` <78489a20-5148-4826-ab6a-b43fa48938d4n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2021-09-07 15:49 ` Bastien DUMONT 2021-09-07 17:06 ` John MacFarlane 2021-09-07 19:26 ` Marc Chantreux [not found] ` <YTe8189Jim/Iqif5-AWr1gsF+PRs9Vg2ZJzWmxBLO4URiXwcH@public.gmane.org> 2021-09-11 19:52 ` Martin Post
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).