Perl
Perl 搜尋和替換
如何使用搜尋和替換來更改文件的內容。
我需要能夠將“全部變為無”和/或“全部變為無”,而不必每次都手動執行數百行。
下面是一個範例文本文件,右側有行號。我已經知道如何打開和關閉文件以進行寫入。
線條
1 define_filter absolute_minimal_filter ——- 所有
2 define_filter atma_basic_filter ——– —– 無
3 define_filter atma_communication_filter – 所有
4 define_filter atma_health_filter ————-無
5 定義過濾器 atma_misc_filter ————— 所有
6 定義過濾器 atma_performance_filter —- 無
7 定義過濾器 atma_supplemental_filter —- 無
用精心挑選的字元串代替“temp”(在兩個地方):
sed 's/all/temp/g;s/none/all/g; s/temp/none/g' input_file > output_file
或者如果 “all” 和 “none” 從未出現在同一行並且總是結束該行,則沒有臨時字元串:
sed 's/all$/none/;t;s/none$/all/' input_file > output_file
出於興趣,Perl 解決方案與 sed 解決方案非常相似:
perl -pi.bak -e 's/all$/none/ || s/none$/all/' input_file
編輯:我錯過了“||” 第一次。作為單獨的語句,第二個將撤消第一個。哦!