Если вы используете XSLT 2.0, укажите xpath-default-namespace = "http://www.example.com"
в разделе stylesheet
.
это фрагмент, который я использую, он удаляет все вещи между APA и BEPA (через несколько строк, включая удаление APA, BEPA) во всех файлах ниже текущего каталога, исключает каталог .svn
find . \! -path '*.svn*' -type f -exec sed -i -n '1h;1!H;${;g;s/APA[ \t\r\n]*BEPA//g;p}' {} \;
Проверьте это
http://cs.boisestate.edu/~amit/teaching/handouts/cs-unix/node130.html
##########################################################
\#!/bin/sh
\# sed/changeword
prog=`basename $0`
case $# in
0|1) echo 'Usage:' $prog '<old string> <new string>'; exit 1;;
esac
old=$1
new=$2
for f in *
do
if test "$f" != "$prog"
then
if test -f "$f"
then
sed "s/$old/$new/g" $f > $f.new
mv $f $f.orig
mv $f.new $f
echo $f done
fi
fi
done
##############################################################
Выход выводится на экран (stdout
) из-за следующего:
sed "s/$OLD/$NEW/g" "$f"
Попробуйте перенаправить на файл (следующий переадресовывается к новым файлам и затем переименовывает его, чтобы перезаписать исходный файл ):
sed "s/$OLD/$NEW/g" "$f" > "$f.new" && mv "$f.new" "$f"
"$f.new"' (two places) and
"$ f & quot; . Also, the
mv` не должен быть безусловным. Вместо этого он должен быть sed ... && mv ...
.
– Dennis Williamson
14 December 2010 в 12:07
sed
: "s|$OLD|$NEW|g"
.
– Dennis Williamson
14 December 2010 в 16:13