1
我有一個文件包含一堆文本,我需要用dddddddddd替換表單中的每個電話號碼(ddd)-ddd-dddd。我該怎麼做呢?我的第一個猜測是,它看起來像:Sed:如何獲取電話號碼格式爲(ddd)-ddd-dddd?
s/\(\\\(ddd\\\)\)-ddd-dddd/\1\2\3
我有一個文件包含一堆文本,我需要用dddddddddd替換表單中的每個電話號碼(ddd)-ddd-dddd。我該怎麼做呢?我的第一個猜測是,它看起來像:Sed:如何獲取電話號碼格式爲(ddd)-ddd-dddd?
s/\(\\\(ddd\\\)\)-ddd-dddd/\1\2\3
你可以使用這個sed的:
sed -i.bak 's/(\([0-9]*\))-\([0-9]*\)-\([0-9]*\)/\1\2\3/' file
或使用擴展的正則表達式標誌:
sed -i.bak -r 's/\(([0-9]{3})\)-([0-9]{3})-([0-9]{4})/\1\2\3/' file
POSIX的變種/ \( ([0-9] \ {3 \})\) - ([0-9] \ {3 \}) - ([0-9] \ {4 \})/ \ 1 \ 2 \ 3/G」 (以g結尾,因爲某些行可能有多個電話號碼) – NeronLeVelu
謝謝!但是,您能否解釋'-i.bak'選項?我知道-i是在原地,但是.bak部分呢? – DaedalusUsedPerl
'.bak'是在線編輯文件之前sed創建的備份擴展名。這只是爲了安全起見,如果出現任何問題,可以用'file.bak'名稱找到原始文件。 – anubhava