Я хочу вставить точки в виде разделителей тысяч в числа, используя sed
. Как я могу это сделать?
Пример ввода / вывода: 29371923471239
должен стать 29.371.923.471.239
.
Я хочу вставить точки в виде разделителей тысяч в числа, используя sed
. Как я могу это сделать?
Пример ввода / вывода: 29371923471239
должен стать 29.371.923.471.239
.
Попробуй это
echo "29371923471239" | sed -r ':A;s|([0-9]+)([0-9]{3})|\1,\2|g;t A'
29,371,923,471,239
Это работает, разбивая число на две части, последние 3 цифры и все остальное. Затем он добавляет a ,
в конец всего остального и возвращается к началу. Вы можете видеть это работает с
echo "29371923471239" | sed -r ':A;s|([0-9]+)([0-9]{3})|\1,\2|g'
29371923471,239
ИСПОЛЬЗУЙТЕ GHC-ONELINERS ДЛЯ БОЛЬШОГО ХОРОШЕГО
$> echo -n 29371923471239 | ghc -e "import Data.List.Split" -e "putStrLn . reverse . intercalate \".\" . splitEvery 3 . reverse =<< getContents"
29.371.923.471.239
!
От:http://www.linuxtopia.org/online_books/linux_tool_guides/the_sed_faq/sedfaq4_007.html
sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'
echo "981273981723" | sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'
981,273,981,723