pdftk[117698] используется для выполнения манипуляций с документами pdf в командной строке (слияние/сплит/...). Вы можете использовать справку по синтаксису.
С другой стороны, вы можете визуализировать содержимое pdf, например, с помощью okular
.[117405].
На основании этот ответ я полагаю, что использование
varname="ENV_$env"
echo ${!varname}
может быть решением.
-121--139493- Я знаю недостаточно о lex
/ flex
, чтобы быть уверенным, но, учитывая код, который я вижу в вопросе, я бы попытался добавить этот код к main ()
:
FILE * myfd = fopen(argv[2], "w");
и используйте fprintf ()
вместо printf ()
, как в:
{ fprintf(myfd, "%s: is a verb", yytext); }
Я использовал argv [2]
в качестве источника имени файла, что означает, что вы должны предоставить его в качестве второго аргумента в вызове программы, но вы также можете жестко кодировать последовательность с именем файла.
Попробуйте
найти. -name env2.cfg -execdir cp {} env3.cfg\;
Путем замены exec
на execdir
. Это означает, что действие ( cp
) будет выполняться в папке, в которой был найден файл ( env2.cfg
).
Ваш пример копирует все файлы env2.cfg в текущую рабочую директорию, которая является "...". Вам необходимо дать найденному файлу новое имя, включая его каталог. Этот сработал для меня:
for file in $(find . -name env2.cfg); do backup=$(echo $file | sed 's/env2.cfg/env3.cfg/'); cp $file $backup; done
редактирование: Или еще более элегантный способ, так что вам не придется беспокоиться о нескольких командах:
for file in $(find . -name env2.cfg); do cp $file ${file/env2/env3}; done
Поскольку это статическая структура, вы можете напрямую обращаться к именам файлов и позволять оболочке копировать их:
for f in conf/widget*/env2.cfg
do
cp "${f}" "${f/env2/env3}"
done