2011-07-27 63 views

回答

0

下面將只匹配上的四個數字的字符串,然後是兩個數字字符串進行更換。

$ echo '201107' | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)/\1-\2/' 
2011-07 

桑達正則表達式是一個有點尷尬,因爲缺乏的\d,並且需要逃避括號和括號(但不brakets)。我的解決方案應該's/(\d{4})(\d{2})/\1-\2/'如果沒有這些特點。

18
echo "201107" | sed 's/201107/2011-07/' 

應該工作。但只是在開玩笑,這裏的更廣泛的解決方案:

echo "201107" | sed 's/^\(.\{4\}\)/\1-/' 

這將前四個字符後插入一個-

HTH

0

我知道這是陷了一個巨大的恐龍,但如果你想消除拖尾6個零點

echo '20110715000000' | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{6\}\)/\1-\2-\3/' 
相關問題