+ -
当前位置:首页 → 问答吧 → 大家自定义以后的 PS1 都是什么样的?

大家自定义以后的 PS1 都是什么样的?

时间:2011-10-29

来源:互联网

我有这样一个文件:
61.178.231.13 201110290239
219.128.82.18 201110290446
27.149.37.60 201110290752
60.168.117.255 201110291009
59.46.80.170 201110291102
60.168.117.255 201110291104
218.86.50.149 201110291107
120.42.146.210 201110291151
61.144.130.200 201110291151
120.42.146.210 201110291152
120.42.146.210 201110291153
59.46.80.170 201110291200
59.46.80.170 201110291203

第一列是IP,第二列是时间,以空格分隔。
我希望处理的结果是:
去掉重复的IP行,如果IP相同,那么保留时间最近的行。
即:
120.42.146.210 201110291153
218.86.50.149 201110291107
219.128.82.18 201110290446
27.149.37.60 201110290752
59.46.80.170 201110291203
60.168.117.255 201110291104
61.144.130.200 201110291151

这个应该怎么做啊?用二维数组吗?

作者: 勒色   发布时间: 2011-10-29

这个差不多了,如果你的日期的年份是一致的话
代码:
sort -r | uniq -w 15 | tac


PS: 第一次发此帖时论坛挂掉了!挂掉了好长一段时间!然后我的 X 也挂掉了,所以火狐也重启了!感谢 Textarea Cache,不然这行代码就会404了!

作者: lilydjwg   发布时间: 2011-10-29

咳,楼上那个简单,我还真去开个emacs写了玩了
代码: [ 下载 ] [ 隐藏 ]
代码: [ 下载 ] [ 显示 ]
使用 haskell 语法高亮
--  test.hs
module Main where
import Data.Monoid
import Data.List
import System.Environment
main :: IO ()
main = do
  fmap head getArgs >>= readFile >>=
    (\content ->
     writeFile "output.txt" $  unlines $ map unwords $
       nubBy (\(ip1:_) (ip2:_) -> ip1 == ip2) $      
         sortBy (\(ip1:t1:_) (ip2:t2:_) ->
                  (compare ip1 ip2) `mappend`
                  (compare t2 t1)) $ map words $ lines content
    )
 
格式化 0.009 秒, 使用 GeSHi 1.0.8.4

代码:
ghc --make test.hs
./test yourfile.txt

output.txt:
120.42.146.210 201110291153
218.86.50.149 201110291107
219.128.82.18 201110290446
27.149.37.60 201110290752
59.46.80.170 201110291203
60.168.117.255 201110291104
61.144.130.200 201110291151
61.178.231.13 201110290239

作者: tangboyun   发布时间: 2011-10-29

tangboyun 写道:
咳,楼上那个简单,我还真去开个emacs写了玩了
代码: [ 下载 ] [ 隐藏 ]
代码: [ 下载 ] [ 显示 ]
使用 haskell 语法高亮
--  test.hs
module Main where
import Data.Monoid
import Data.List
import System.Environment
main :: IO ()
main = do
  fmap head getArgs >>= readFile >>=
    (\content ->
     writeFile "output.txt" $  unlines $ map unwords $
       nubBy (\(ip1:_) (ip2:_) -> ip1 == ip2) $      
         sortBy (\(ip1:t1:_) (ip2:t2:_) ->
                  (compare ip1 ip2) `mappend`
                  (compare t2 t1)) $ map words $ lines content
    )
 
格式化 0.009 秒, 使用 GeSHi 1.0.8.4


看不懂求入门教程

作者: lilydjwg   发布时间: 2011-10-29