Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

暇なので手抜きheadコマンドをC#で

$
0
0
using System;
using System.IO;
using System.Linq;

namespace head
{
    class Program
    {
        staticvoid Main(string[] args)
        {
            if (!args.Any())
            {
                Usage();
                return;
            }

            string fileName = null;
            int lineNumber = 10;

            if (args.Length == 1)
            {
                fileName = args[0];
            }

            if (args.Length == 3)
            {
                if (args[0] != "-n")
                {
                    Usage();
                    return;
                }

                if (!int.TryParse(args[1], out lineNumber))
                {
                    Usage();
                    return;
                }

                fileName = args[2];
            }

            if (!File.Exists(fileName))
            {
                // ファイル無いreturn;
            }

            foreach (var line in File.ReadLines(fileName).Take(lineNumber))
            {
                Console.WriteLine(line);
            }
        }

        privatestaticvoid Usage()
        {
            Console.WriteLine("usage head filename or head -n N filename");
        }
    }
}

-nにしか対応していません。コマンドライン引数のパース処理ってめんどくさいですね…。NuGetでさくっと何かライブラリ入れて片づけてしまいたい。


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>