我提出你的問題意味着你需要一個命令行來「隨時」編輯文件,而不是一個你可以在需要時重新使用的文件。
-i開關可用於編輯文件。基本公式你是後:
$ perl -i.extension -e CODE FILE
例如:perl的-i.bak -e 'S /查找/替換/ 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中,使用雙引號而不是單引號當做命令行的東西......出於某種原因。
來源
2011-04-28 16:45:05
TLP
謝謝,但這並不適合我。我可能是錯誤的。你能看到我執行錯誤的邏輯: – salvationishere 2011-04-28 16:39:40
@salvationishere - 你在Windows cmd.exe,所以你需要用雙引號替換單引號。 – Lumi 2011-04-28 16:57:42
太棒了!正是我需要的!謝謝! – salvationishere 2011-04-28 17:46:22