Когда каждый def/*
файл имеет только одну /NODE/
строку, вы можете попробовать вложенную sed
.
. Помните, что sed
может использовать другие символы, такие как ,
или #
, когда вы не/
.
# First look at the generated commands by
sed 's#.*#/NODE/ s,&,#' list.csv
# next try
sed -f <(sed 's#.*#/NODE/ s,&,#' list.csv) def/*
# Make backup before changing
cp -r def def_bak
# Get serious
sed -if <(sed 's#.*#/NODE/ s,&,#' list.csv) def/*
Когда вы не уверены в этом (перекрывающиеся файлы, такие как PO1 и PO12), вы можете циклически просматривать файлы, начиная с вашего csv.
while IFS= read -f line; do
test -f def/"${line%,*}" || continue
sed -i "s,${line}," def/"${line%,*}"
done < list.csv