Поскольку это что ls
команда должна сделать. Ваш сценарий эффективно работает
ls -al . *.pdf
И это перечислит все файлы в текущем каталоге (как указано .
). Не учтите точку, и у Вас будет просто PDFs.
Попытка:
el_value=$(sed -n "s/.*<$2>\([^:<]*\).*/\1/p" < "$1")
В Вашем коде проблемы были:
$2
который означал, что это не было расширено/
искать закрывающий тэг в grep
команда.Я думаю, что это - проблема кавычки. В Вашем grep
& sed
аргумент, $1
и $2
не анализируются из-за Ваших простых кавычек ('
). Попробуйте этого:
el_value=$(grep "<$2>.*<$2>" $1 | sed -e "s/^.*<$2/<$2/" | cut -f2 -d'>'| cut -f1 -d':')
el_value=$(grep "<$2>.*</$2>" $1 | sed -e "s/^.*<$2/<$2/" | cut -f2 -d'>'| cut -f1 -d':')
. И назовите его с file.xml p4Port server1
. Помните, что xml langage не является регулярным langage, таким образом, Вы могли бы найти случай, который не будет работать Ваш sed exp. Используйте xml синтаксический анализатор и сценарий langage как python/ruby/perl/other
– GHugo
22.03.2013, 20:53