我需要將文件拆分爲不同的文件。Perl:如何分割文件?
〔實施例(原始文件):
*****3123123*****RAW
text1
text2
*****2312354***RAW
text3
希望的輸出:
[FILE1.TXT]
*****3123123*****RAW
text1
text2
[FILE2.TXT]
*****312312354***RAW
text3
我試圖使用拆分,但我總是這樣我額外的空白字符到數組
open FILE, "<file";
@file= <FILE>;
close FILE;
@lines = split (/(RAW\n)/, "@file");
foreach $value (@lines) {
if ($value =~ /[a-z]|[A-Z]|[1-9]/) {
print ("$value\n");
}
}
輸出:
*****3123123*****RAW
text1
text2
*****312312354***RAW
text3
編輯:如果我使用打印( 「$值」),而不是打印( 「$值\ n」),這是輸出(前值注意1個額外的空間:
*****3123123*****RAW
text1
text2
*****12354***RAW
text3
是不是隻是當你分裂時,它不會刪除換行符,所以當你添加'print(「$ value \ n」)'時,你會添加一個額外的換行符。這就是爲什麼它看起來有多餘的空白。 –
沒有\ n我在每個值的開始處得到1個額外的空白區域。 – user1444482
額外的空間是因爲您將'@ file'插入單個字符串中,默認情況下會在元素之間插入空格字符。通常一行一行讀取文件通常會更好,除非它非常小,但如果你堅持一次讀取所有文件,你可以寫'@lines = split(/(RAW \ n)/,加入'',@ file'或我的$ data = do {local $ /;;}; @lines = split(/(RAW \ n)/,$ data; –
Borodin