通过命令行修改文件中的行格式

时间:2016-04-11 21:19:42

标签: bash awk sed

我有一个包含制表符分隔日期的文件,格式为:20160101。我想修改所有行,以便日期的结构类似于2016-01-01。到目前为止,我一直在emacs中这样做,但是当文件很大并且我想看看是否有命令行选项时这是非常慢的?

具体来说,目前看起来像这样的文件:

20160101      20160103
20160104      20160107
20160106      20160201
20160201      20160205
20160119      20160122
   ...           ...

将成为:

2016-01-01      2016-01-03
2016-01-04      2016-01-07
2016-01-06      2016-02-01
2016-02-01      2016-02-05
2016-01-19      2016-01-22
   ...           ...

3 个答案:

答案 0 :(得分:3)

sed -r 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/g'

答案 1 :(得分:1)

dpc

答案 2 :(得分:1)

public class LoginManager {
    public static LoginManager Instance = new LoginManager();

    private LoginManager() {

    }

    public bool IsLoggedIn { get; private set; }

    public void Login() {
        // do something, then
        IsLoggedIn = true;
        OnLoggedIn?.Invoke();
    }

    public bool HasClaim(string name) {
        if (!IsLoggedIn)
            throw new Exception("Cannot check claim until logged in");
        return true;
    }

    public event Action OnLoggedIn;
}