我有很多行包含XXXXXXXXX-XXX.XXX
數字格式。我想換號XXXXXXXXX-XXX.XXX
到XX.XXX.XXX.X-XXX.XXX
更改編號格式
XXXXXXXXX-XXX.XXX
= 15位隨機數
任何人都可以幫我嗎?在此先感謝
我有很多行包含XXXXXXXXX-XXX.XXX
數字格式。我想換號XXXXXXXXX-XXX.XXX
到XX.XXX.XXX.X-XXX.XXX
更改編號格式
XXXXXXXXX-XXX.XXX
= 15位隨機數
任何人都可以幫我嗎?在此先感謝
這是醜陋的(因爲sed的使用正則表達式POSIX),但應該工作:
sed 's/\([0-9]\{2\}\)\([0-9]\{3\}\)\([0-9]\{3\}\)\([0-9]\)\(-[0-9]\{3\}\.[0-9]\{3\}\)/\1.\2.\3.\4\5/g'
常規正則表達式:搜索(\d{2})(\d{3})(\d{3})(\d)-(\d{3}\.\d{3})
並替換\1.\2.\3.\4-\5
。
我不太瞭解sed,但我認爲這裏的語法有點不同。嘗試:
sed 's/\([0-9]\{2\}\)\([0-9]\{3\}\)\([0-9]\{3\}\)\([0-9]\)-\([0-9]\{3\}\.[0-9]\{3\}\)/\1.\2.\3.\4-\5/')
嘗試:
echo "987654321" | sed 's/\([0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9]\)/\1.\2.\3.\4/'
(此輸出98.765.432.1)
然後,對於從文件中讀取輸入:
sed 's/\([0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9]\)/\1.\2.\3.\4/' in.txt
,並且對於寫入新文件:
sed 's/\([0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9]\)/\1.\2.\3.\4/' in.txt > out.txt
我想你可以改進它,但這是一般的想法。
不好意思啊,我誤讀。蒂姆的回答是正確的。你明白了... – laher 2010-06-18 11:33:02