Я полагаю, что ваш вопрос означает, что вы хотите, чтобы командная строка редактировала файлы «на лету», а не файл, который вы можете использовать повторно, когда вам это нужно.
Ключ -i можно использовать для редактирования файла на месте. Базовая формула, которую вы ищете:
$ perl -i.extension -e CODE FILE
Например: perl -i.bak -e 's / find / replace / g' file.txt
Документация здесь: http://perldoc.perl.org/perlrun.html
Я бы порекомендовал не использовать командную строку, особенно, если вам нужна разборчивость. Я не уверен, какой тип текста вы заменяете, поэтому трудно сказать, как должно выглядеть регулярное выражение.
#!/bin/perl -i.bak
# Notice the "-i" switch
use strict;
use warnings;
while (<>) {
s/Case-Sensitive-text/CST/g;
s/case-insensitive-text/CIT/ig;
s/\[text inside brackets\]/no_brackets/g;
}
Этот файловый скрипт будет делать то же самое, если вызывается с помощью script.pl myfile.txt
ETA:
C:\STRAWB~1\perl\bin>perl -pi.orig -we 's/\bV_QXP_ALL_EXCEPTION\b/A/g' test.sql
Useless use of a constant (s/\bV_QXP_ALL_EXCEPTION\b/A/g) in void context at -e
line 1.
Почему вы бездельничаете внутри двоичной папки perl? =)
В Windows вы используете двойные кавычки вместо одинарных кавычек при выполнении командных строк ... по некоторым причинам.