看板 Perl 關於我們 聯絡資訊
我想在一個a.txt的檔案加上日期, 然後存成a.txt 例如a.txt內容是 aaa bbb ccc 執行後a.txt內容變成 20080723 aaa bbb ccc 但是我run以下的寫法, 卻會在每一行後面都有^M 可是如果我將printf NEWFILE "%d%02d%02d\n", $year+1900, $mon+1, $mday; 這行拿掉, 在每行後面就不會出現^M 不曉得這是什麼原因? 亦或者有大大有其他方法可以做到這件事而不會出現^M? 非常感謝 #!/usr/bin/perl open(FILE, 'a.txt') or die "$!"; @file = <FILE>; close(FILE); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); open(NEWFILE, '> a.txt') or die "$!"; printf NEWFILE "%d%02d%02d\n", $year+1900, $mon+1, $mday; print NEWFILE @file; close(NEWFILE); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.210.94
salagadoola:代表a.txt是用\r\n當換行符號(windows的預設換行符號) 07/24 17:14
salagadoola:把printf那行的\n改成\r\n就可以了 07/24 17:14
derick02:真的可以了耶...太感謝了.... 07/24 19:25
derick02:不過還是不了解為何這一行會影響到後面的print @file 07/24 19:26
derick02:我是在linux底下執行的 07/24 19:26
a1234957:這要問M$ XDD 07/24 20:58
salagadoola:其實那一行沒有影響到後面的print @file 07/25 10:20
salagadoola:是vi看到第一行的\n以為你這個檔案是用\n當換行符號 07/25 10:20
salagadoola:於是就把後面的\r都用^M顯示 07/25 10:21
derick02:原來如此,感謝s大的分享,我確實是用vi來開啟檔案 07/25 13:29