Используйте вторую переменную pdfgrep как переменную - PullRequest
0 голосов
/ 16 февраля 2019

Я использую 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

Результаты команды в терминале:

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

1 Ответ

0 голосов
/ 16 февраля 2019

Можно использовать <(...) подстановка процесса, чтобы перенаправить вывод 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-1977
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...