我正在使用pdfgrep来查找pdf中的某些信息,并使用该信息重命名所述文件。但是,对于日期,我需要以不同于文件保存的方式对它们进行格式化。我计划将日期的每个部分(月、日、年)作为单独的变量来提取,这样我就可以用if语句重新格式化它们。有没有办法将找到的第二个数字作为变量存储在bash中?
shopt -s nullglob nocaseglob
for f in *.pdf; do
id1=$(pdfgrep -i "ID #: " "$f" | grep -oE "[M][0-9-][0-9]+")
id2=$(pdfgrep -i "Second ID: " "$f" | grep -oE "[V][0-9-][0-9]+")
# Check id1 is found, else do nothing
if [ ${#id1} ]; then
mv "$f" "${id1}_${id2}.pdf"
fi
done终端中命令的Rresults:
$ pdfgrep -i "Date of Birth: " 2.pdf | grep -oE "[0-9]+"
3
23
1977发布于 2019-02-17 01:24:26
您可以使用<(...)进程替换将grep的输出重定向到三个read命令中,这三个命令将值存储在单独的变量中。
{ read month; read day; read year; } < <(pdfgrep -i "Date of Birth: " 2.pdf | grep -oE "[0-9]+")结果:
$ echo "$month-$day-$year"
3-23-1977https://stackoverflow.com/questions/54725624
复制相似问题