perl語言被某些愛好者稱作「unix 中的王牌工具」。確實,和c/c++相比,perl語言特別是在處理
文字和檔案方面,有一些獨到的優勢,在處理某些文字檔案任務時,真的是很方便的。
比如下面這個問題:
現在兩個文字檔案a.txt和b.txt,內容如下:
a.txt:ab
cdef
gb.txt:12
3456
7我怎樣能生成乙個新檔案(c.txt),內容如下:
c.txt:a1
b2c3
d4e5
f6g7
簡單說就是要完成兩個文字檔案的交叉合併。
如果想用c/c++實現,實現應該是比較複雜的,需要使用不少字串處理函式,以及檔案指標操作,所以我個人認為還是比較複雜的。
如果想比較簡單地解決這種問題,就需要找到一種「處理字串和文字方面比較有優勢」的語言,在這方面,被稱為「軟體晶元」的perl語言就屬於其中之一,只需要知道它怎麼控制檔案控制代碼,就能個比較簡單地實現了,不多說了,直接看實現**:
#! /usr/bin/perl -w #本地的perl編譯器路徑
use strict; #開啟語法檢測
use 5.010; #使用5.10版本
my $name_1 = $argv[0];
my $name_2 = $argv[1]; #得到命令列引數
#open the ori perlterm script
open txt_1, "<$name_1";
open txt_2, "<$name_2"; #得到兩個檔案控制代碼
my @a = ;
my @b = ; #得到兩個檔案內容
my $line_b = @b; #b.txt檔案內容傳遞
my $count_line = 0; #初始化檔案行數
open my $newfile, ">", "c.txt"; #建立公升成的新檔案和控制代碼
foreach (@a)
}close $newfile or warn "can not close the file";#合併結束,關閉
儲存為merge.pl並退出,這樣就ok啦!執行結果如下:
a.txt:ab
cdef
gb.txt:12
3456
7c.txt:a1
b2c3
d4e5
f6g7
不到30行,就搞定了。
python 實現兩個文字檔案內容去重
實現兩個文字內容去重,輸出兩個文字不重複的結果 兩個測試文字內容如下 1.txt中內容為 123 4567 82.txt中內容為 123 4567 891011 1213 1415 分別讀取兩個文字的內容讀取1.txt的內容,具體實現如下 str1 file 1 open 1.txt r encod...
兩個文字檔案某一單列的交集
1.txt有一列,不都在2.txt裡 2.txt有幾列,第一列的值裡可能有1.txt的值,中英文大小寫各種符號都可能有除了 列分隔符是 awk f beginnrfnrnr fnr 1.txt 2.txt 解釋如下 f 指定分隔符 begin語句忽略了英文大小寫 nr fnr意味著在讀第乙個檔案。n...
用python清洗文字檔案
對此,首先需要熟悉一些python基本的字串操作。在python中,字串用引號 或 來表示,並可通過類似陣列的方式進行索引,對此我們先建立乙個字串 test txt檔案csdn.com清csd.com洗csdn.com test 2 tx 我們要做的就是刪除字串中所有的 csdn.com pytho...