
for i in $(find template -type f | sed 's/^template//') ; do
diff -wBNu {,./template}$i
Я могу понять цикл for, который обойдет все файлы в template
каталоге, а затем заменит все предложения, начинающиеся с template, на ''
. Правильно ли я понимаю? Что diff
здесь делает?
решение1
Скобки выполняют 'расширение скобок' оболочки. Конструкция {,./template}$i создает пару слов, оба из которых содержат значение $i, но последнее имеет ./template в качестве префикса. Попробуйте команду
echo foo{,bar}
в командной строке, чтобы увидеть это в действии. Это описано в разделе "Расширение скобок" в руководстве по bash.