Я искал способ найти и заменить строки во всех файлах fortran в моем текущем каталоге. Большинство ответов на здесь вдоль линий с помощью:Проблема с командой sed в Bash для замены строки
sed -i 's/INCLUDE \'atm/params.inc\'/USE params/g' *.f
или
perl -pi -w -e 's/INCLUDE \'atm/params.inc\'/USE params/g' *.f
Однако, когда я использую один из этих Баш продолжение строки> выскакивает на следующей строке, как будто это ожидает ввода или другой аргумент. Я не видел, чтобы кто-то еще сталкивался с этим, и я не уверен, что с ним делать. Являются ли мои команды неправильными; я что-то упускаю?
BashFAQ # 21, в http://mywiki.wooledge.org/BashFAQ/021, дает канонический механизм для этого. –
BTW, 'sed -i' является нестандартным расширением - стандарт POSIX для' sed' не гарантирует, что он будет доступен, и даже когда он * * доступен, он может вести себя по-разному (Версия MacOS X не будет работать с вашей командой). Если вы хотите написать переносимый код, вместо этого используйте вместо него 'ex' или другой механизм, указанный в стандартном соответствии в вышеупомянутых часто задаваемых вопросах. –
Можете ли вы подтвердить, что вы можете воспроизвести ошибку с ** точными командами, указанными здесь **? В частности, '' s/old-string/new-string/g'', с 'old-string' и' new-string' в качестве литерала, точный исходный и целевой текст (не какой-либо другой текст, для которого вы используете эти строки в качестве заполнителей)? –