module ReorderIPAAddr where import Data.List import Debug.Trace main :: IO () main = do txt <- readFile "/Users/ariem/Desktop/addr.txt" let ls = lines txt ls' = map (concatMap (++ "\r\n") . reorder . splitWith ", ") ls txt' = unlines ls' writeFile "/tmp/addr.txt" txt' where splitWith = splitWith' "" splitWith' aux k s | k `isPrefixOf` s = aux : splitWith k (drop (length k) s) splitWith' aux k [] = [aux] splitWith' aux k (x:xs) = splitWith' (aux ++ [x]) k xs reorder es = let (xs,(y:ys)) = break (isPrefixOf "Prof") es in (y : (reverse xs ++ ys))