【发布时间】:2014-02-20 18:03:02
【问题描述】:
我有一个这样的文件:
32323
43434343
34343434
111134343434
.
.
.
并希望我的文件看起来像这样:
32.323
43434.343
34343.434
111134343.434
.
.
.
如何向后每 3 个字符添加一个点? 我想也许将每个字符除以 1000?但找不到并选择这样做。
提前致谢。
【问题讨论】:
我有一个这样的文件:
32323
43434343
34343434
111134343434
.
.
.
并希望我的文件看起来像这样:
32.323
43434.343
34343.434
111134343.434
.
.
.
如何向后每 3 个字符添加一个点? 我想也许将每个字符除以 1000?但找不到并选择这样做。
提前致谢。
【问题讨论】:
使用 sed;
sed 's/...$/.&/' file
32.323
43434.343
34343.434
111134343.434
使用 awk:
awk '{printf "%.3f\n", ($1/1000)}' file
32.323
43434.343
34343.434
111134343.434
【讨论】:
您也可以在awk 中使用sed 正则表达式:
awk '{sub(/...$/,".&")}8' t
32.323
43434.343
34343.434
111134343.434
【讨论】:
或者您可以使用所谓的带括号的子表达式。
$ sed -e "s/\(...$\)/.\1/" file
32.323
43434.343
34343.434
111134343.434
【讨论】: