EDIT:
Меня не волнует, как вы получаете файл $, используя командную строку или что-то еще, что вам подходит. Я гораздо больше обеспокоен частью вашего вопроса #do something
, которая, как я считаю, является основным вопросом, и всем, кто публикует различные сообщения find -name 'reg' | xargs ...
, следует дважды подумать, прежде чем усложнять вопросы для ОП.
<ч />
используйте sed
var=`find -name "reg"`
#replace ./ for newline
for file in $var; do
sed -i 's|\./|\n|g' $file
done
уберите опции -i, чтобы получить вывод на экран, если получен удовлетворительный вывод, используйте -i, чтобы фактически изменить строку.
Во втором чтении, может быть, я заменяю наоборот, возможно, вы хотите заменить символ новой строки на ./? Его немного сложно
sed -i ':a;N;$!ba;s|\n|./|g' $file
как всегда, протестируйте без опции -i и затем решите, хотите ли вы изменить файл.
Для объяснения второй магии sed прочитайте это SO . Это точно так же, за исключением символа ./
для замены строки.