有一百万个网页,每个网页可能有两个电话号码 格式(XXX)XXX-XXXX,XXX-XXX-XXXX,如何找到它们并将它们更新为统一格式,即1-xxx-xxx-xxxx。如何使用Linux或Unix命令?
答案 0 :(得分:0)
cat ph.txt
111-222-3333-4444
(222)-234-2932-2929
212-939-2929-2929
使用sed可以更改millon网页
cat ph.txt | sed -e 's/^(//;s/)//;s/^/1-/'
1-111-222-3333-4444
1-222-234-2932-2929
1-212-939-2929-2929
所有html文件
find dirname -type f -name "*.html" -exec sed -e 's/^(//;s/)//;s/^/1-/' {} \;
答案 1 :(得分:0)
sed -e 's/(\([[:digit:]]\{3\}\))\([[:digit:]]\{3\}-[[:digit:]]\{4\}\)/\1-\2/g' -e 's/[[:digit:]]\{3\}-[[:digit:]]\{3\}-[[:digit:]]\{4\}/1-&/g'
这样的事情。第一个命令将括号的样式更改为连字样式,第二个命令将 1 - 添加到它。
答案 2 :(得分:0)
此命令可以一步使用任一格式:
sed 's/(\?\([[:digit:]]\{3\}\)[)-]\?\([[:digit:]]\{3\}-[[:digit:]]\{4\}\)/1-\1-\2/g' inputfile
它也将改变其他数字格式,包括“123456-7890”,“(123456-7890”和“123)456-7890”。