cutコマンドもどき
を作ってみました。どーもcutコマンドはデフォルトの区切り文字とかオプションの指定方法が好きになれないので…
module Main (main) where import Cinnamon (readFiles) import System (getArgs) import System.IO (stderr, hPutStrLn) main :: IO () main = do args <- getArgs case args of (n : files) -> mapM_ putStrLn . field (read n - 1) =<< readFiles files _ -> hPutStrLn stderr "usage: hcut n files..." field :: Int -> String -> [String] field n = map (flip (!!) n . words) . lines
実行例:
$ echo "aaa bbb ccc" | ./hcut.exe 1 aaa $ echo "aaa bbb ccc" | ./hcut.exe 2 bbb