Perlです。読み込みの後は書き込みです。
書き込みするファイルを開くのにもopenを使います。
open(ハンドラ,”>ファイル名”);
書き込みするには、
print ハンドラ 書き込む文字列;
使ってみます。
takk@deb9:~/pl$ cat write.pl open(FH,">out.txt"); print FH "HELLO\n"; close(FH);
out.txtというファイルを作成してHELLOという文字列を書き込むスクリプトです。
実行結果です。
takk@deb9:~/pl$ ls write.pl takk@deb9:~/pl$ perl write.pl takk@deb9:~/pl$ ls out.txt write.pl takk@deb9:~/pl$ cat out.txt HELLO takk@deb9:~/pl$
次は、ファイル読み書きをしてファイルコピーするスクリプトです。
takk@deb9:~/pl$ cat read-write.pl open(FH_IN,"<in.txt"); open(FH_OUT,">out.txt"); @a = <FH_IN>; print FH_OUT @a; close(FH_IN); close(FH_OUT);
コピー元ファイルを作ります。
takk@deb9:~/pl$ seq 20 | pr -t4J > in.txt takk@deb9:~/pl$ cat in.txt 1 6 11 16 2 7 12 17 3 8 13 18 4 9 14 19 5 10 15 20
実行してみます。
takk@deb9:~/pl$ perl read-write.pl takk@deb9:~/pl$ cat out.txt 1 6 11 16 2 7 12 17 3 8 13 18 4 9 14 19 5 10 15 20 takk@deb9:~/pl$ diff in.txt out.txt takk@deb9:~/pl$
コピーされました。
標準出力は、そのままprintするだけですね。
どうしてもハンドラを使いたいなら、STDOUTが使えます。
takk@deb9:~/pl$ cat stdout.pl print STDOUT "HELLO\n"; takk@deb9:~/pl$ perl stdout.pl HELLO takk@deb9:~/pl$
標準エラー出力するには、STDERRを指定します。
takk@deb9:~/pl$ cat stderr.pl print STDERR "HELLO\n"; takk@deb9:~/pl$ perl stderr.pl 1>/dev/null HELLO takk@deb9:~/pl$
コメント