Решение, которое я принял:
if svn diff -r BASE:HEAD./doc/guidelines/typesetter-guidelines.tex | grep -q ^
then echo "Out of date"
else echo "Updated"
fi
Есть ли противопоказания? Могу ли я сделать лучше, чем это?
Использование контура while read
:
while read -r file1 file2 trash; do
something with "$file1" and "$file2"
done < /path/to/input_file
Это будет читать ваш входной файл построчно, устанавливая file1
и file2
с первым и вторым столбцами соответственно. trash
, вероятно, не нужен, но мне нравится включать его для обработки вещей, с которыми вы можете столкнуться, таких как:
file1.fastq.gz file2.fastq.gz foo
Если ваш файл содержит строку, подобную приведенной выше, и вы не включили переменную trash
(или аналогичную ), ваша переменная file2
будет установлена на:file2.fastq.gz foo
xargs
это еще один способ, если ваш формат файла точно такой, как вы говорите :два пробела -разделенные поля в строке (с учетом ...
многоточия ).
< input xargs -n2./script-here
... прочитает файл с именем input
строка -по строке -и передаст два аргумента в ./script-here
.
Вы можете изменить перенаправление:
xargs -n2./script-here < input
... если это имеет для вас лучший интуитивный смысл.