#!/bin/sh
echo "Enter the directory name from where you want to process the pdf documents"
read fname
for FILE in $fname/*.pdf
do
echo $FILE
outdir=../processedpdf
mkdir -p "$outdir"
java -jar tika-app-1.6.jar --xml "$FILE" >"$outdir/${FILE%.pdf}.xml" \
|| rm -- "$outdir/${FILE%.pdf}.xml"
done
我无法建立另一个源文件来执行文件,任何人都可以帮助我吗? 我无法分配不同的文件夹名称来执行其文件。
答案 0 :(得分:0)
通过查看您的脚本,您似乎正在尝试将pdf
文件转换为xml
文件,并将转换后的文件存储在processedpdf
目录中。
我对你的剧本做了一些修改。
#!/bin/bash
echo "Enter the directory name from where you want to process the pdf documents"
read fname
# Create directory only if it does not exist.
[[ -d ../processedpdf ]] || mkdir ../processedpdf
for FILE in "${fname}"/*.pdf
do
echo "$FILE"
java -jar tika-app-1.6.jar --xml "$FILE" > "$outdir/${FILE%.pdf}.xml"
done
我所做的修改是。
mkdir ../processedpdf
移到循环之外,因为没有必要重复它。|| rm -- "$outdir/${FILE%.pdf}.xml"
。因为如果文件转换失败,那么根本不会创建"$outdir/${FILE%.pdf}.xml"
文件,因此没有必要将其删除。bourne
更改为bash
。答案 1 :(得分:0)
for FILE in $fname/*.pdf do echo $FILE outdir=../processedpdf mkdir -p "$outdir" java -jar tika-app-1.6.jar --xml "$FILE" >"$outdir/${FILE%.pdf}.xml" \ …
如何指定其他父文件夹...
您的代码存在的问题是$FILE
包含路径$fname
,因此前置$outdir
不会产生所需的,但可能不存在的文件夹路径。例如:
fname=R
⇒e。 G。 FILE=R/Rplots.pdf
⇒>"../processedpdf/R/Rplots.xml"
要获得所需的$outdir
路径,必须删除$fname
,例如:克。
BASEFILE=${FILE##*/}
java -jar tika-app-1.6.jar --xml "$FILE" >"$outdir/${BASEFILE%.pdf}.xml" \
…