0
я работаю на Баш скрипт, который должен найти файлы, такие какAwk подмена внутри команды находят
/var/www/templates/testdoctype/test_file.html.head
и вернуть что-то вроде
cp -f '/var/www/sites/t/test/test_file.html' '/home/user/tmp/test_file.html'
мой сценарий до сих пор выглядит следующим образом:
#!/bin/bash
DOCPATH='/var/www/templates/testdoctype'
INSTALL_PATH='/var/www/sites/t/test'
PKGBACKPATH='/home/user/tmp'
function find_suffix_head {
find "$FROM/$DOCTYPE" -type f -iname "*.head" -print \
| awk -v docpath="$DOCPATH" -v installpath="$INSTALL_PATH" -v pkgbackpath="$PKGBACKPATH" \
'{ sub(docpath, installpath) sub(/.head$/, "") } { printf "cp -f ""'\''"$0"'\''"" " ; sub(installpath, pkgbackpath) ; print "'\''"$0"'\''" }'
}
find_suffix_head
Это возвращает
cp -f '/var/www/templates/testdoctype/test_file.html' '/var/www/templates/testdoctype/test_file.html'
Так, sub(/.head$/, "")
работает как следует, но sub(docpath, installpath)
и sub(installpath, pkgbackpath)
нет.
Ах! Это было действительно более чистое решение, спасибо вам большое! –