Я борюсь с другой проблемой, на этот раз связанной с перенаправлением вывода в файл (>
). У меня есть несколько файлов с именем foo-ab.in foo-abc.in foo-abcd.in bar-ab.in bar-abc.in bar-abcd.in, и я хочу просмотреть каждый файл, изменить некоторые небольшие часть его с помощью sed, а затем переписать результаты во что-то вроде foo-ab2.in, foo-abc2.in и foo-abcd2.in для каждого файла. На данный момент у меня есть:
for file in foo bar; do sed -n 's/text to change/replacement/ p' $file*.in> &1; done
однако я получаю сообщение об ошибке:
-bash: syntax error near unexpected token `&'
Я понимаю, что, вероятно, делаю все неправильно, но я хочу добиться этого:
for file in foo bar; do sed -n 's/text to change/replacement/ p' $file*.in > $file*2.in; done
где $file*2.in
имеет то же имя, что и $file.in
, с добавлением 2 посередине, но поскольку существует несколько foo
с окончанием ab, abc или abcd, я не знаю, как это сделать. Моя команда sed
уже разработана, это просто правильное имя файла для вывода меня сбивает с толку.