Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 使用第二个pdfgrep find作为变量_Bash_Grep - Fatal编程技术网

Bash 使用第二个pdfgrep find作为变量

Bash 使用第二个pdfgrep find作为变量,bash,grep,Bash,Grep,我使用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]+

我使用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
R终端中的命令结果:

$ pdfgrep -i "Date of Birth: " 2.pdf | grep -oE "[0-9]+"
3
23
1977

你可以使用
你可以使用效果非常好的
!如果一天/一个月只有一个数字,你知道有什么简单的方法可以把前导零加到它上面吗?(例如,7月5日是5-7日,但我需要05-07)
printf'%02d-%02d-%04d\n'$month'$day'$year'
看起来不错!我不是最好的程序员,所以你知道我将如何将其合并到现有代码中吗?使用
$(…)
命令替换将
printf
的输出用作新文件名的一部分。类似于
mv“$f”“${id1}}{id2}}{(printf….pdf“
的东西,效果非常好!如果一天/一个月只有一个数字,你知道有什么简单的方法可以把前导零加到它上面吗?(例如,7月5日是5-7日,但我需要05-07)
printf'%02d-%02d-%04d\n'$month'$day'$year'
看起来不错!我不是最好的程序员,所以你知道我将如何将其合并到现有代码中吗?使用
$(…)
命令替换将
printf
的输出用作新文件名的一部分。类似于
mv“$f”“${id1}}{id2}}{u$(printf….pdf“
{ read month; read day; read year; } < <(pdfgrep -i "Date of Birth: " 2.pdf | grep -oE "[0-9]+")
$ echo "$month-$day-$year"
3-23-1977