2016-04-11 9 views
0

私はタブで区切られた日付を含むファイルを持っています。形式は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 
    ...   ... 

答えて

1
sed -e 's/2016\(..\)\(..\)/2016-\1-\2/g' input >output 
3
sed -r 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/g' 
+0

私は括弧をエスケープするために必要なことがわかった。..そうあなたの正規表現は私のものよりも優れています –

+1

'-r'なしで、エスケープする必要があります。 –

1
sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1-\2-\3/g' 
関連する問題