PHPで言語処理100本ノック 2015(第2章:前半)
10. 行数のカウント
<?php echo substr_count(file_get_contents($argv[1]), "\n"); echo "\n";
確認
$ wc -l hightemp.txt
11. タブをスペースに置換
<?php echo str_replace("\t", " ", file_get_contents($argv[1]));
確認
$ expand -t 1 hightemp.txt
12. 1列目をcol1.txtに,2列目をcol2.txtに保存
<?php $col1 = ''; $col2 = ''; $explodedByNLC = explode("\n", file_get_contents($argv[1])); foreach ($explodedByNLC as $index => $row) { if ($index === count($explodedByNLC) - 1) { break; } $explodedByTab = explode("\t", $row); $col1 .= $explodedByTab[0]."\n"; $col2 .= $explodedByTab[1]."\n"; } file_put_contents('./col1.txt', $col1, LOCK_EX); file_put_contents('./col2.txt', $col2, LOCK_EX);
確認
$ cut -f 1 hightemp.txt > col1_sh.txt $ cut -f 2 hightemp.txt > col2_sh.txt
13. col1.txtとcol2.txtをマージ
<?php $result = ''; $col1 = explode("\n", file_get_contents($argv[1])); $col2 = explode("\n", file_get_contents($argv[2])); foreach ($col1 as $index => $row) { if ($index === count($col2) - 1) { break; } $result .= $row . "\t" . $col2[$index] . "\n"; } file_put_contents('./13.txt', $result, LOCK_EX);
確認
$ paste col1.txt col2.txt > 13_sh.txt
14. 先頭からN行を出力
<?php for($i = 0; $i < $argv[2]; $i++) { echo explode("\n", file_get_contents($argv[1]))[$i]."\n"; }
確認
$ head -n 7 hightemp.txt