글쎄, 나는 이 글을 게시하기로 결정하기 전에 내 문제와 관련하여 여기에 제공된 모든 솔루션을 시도했습니다. 나는 이것이 간단하다는 것을 알고 있지만 Bash를 다루는 것은 이번이 처음입니다. 그러니 양해해 주십시오.
이 스크립트가 있습니다
FILES=*.html
for f in $FILES
do
# extension="${f##*.}"
filename="${f%.*}"
echo "Converting $f to $filename.md"
`pandoc $f -t markdown -o $filename.md`
rm $f
done
이 스크립트는 Html 파일로 가득 찬 디렉터리를 동등한 Markdown 파일로 변환하기 위해 만들어졌습니다. 변환을 위해 Pandoc을 사용합니다.
문제는 이 스크립트가 동일한 폴더에 있는 파일만 변환한다는 것입니다. 다음과 같이 하위 폴더에 있는 모든 파일을 변환하고 싶습니다.
Folder1/Folder2/folder3/index.html
어떻게 할 수 있는지에 대한 아이디어가 있나요?
답변1
거의 동일한 코드를 사용하지만 전체 경로를 얻고 find
공백을 기록해 두십시오.
find ./path/to/start/from -iname "*.htm*" -exec bash -c 'fn=${1%.*}; sn=${fn##*/};
echo "Converting $1 to $sn.md";
pandoc "$1" -t markdown -o "$fn.md" && rm "$1"
' bash {} \;
구조find .....-exec
sh -c `some code here` sh {}
as {}
에서 돌아와서 거기 에서 재생할 수 있습니다.bash
bash -c
$1