Cutting numbers into a specific decimalsHow do I fetch only numbers in grep?How to calculate Pi decimals from a given offset?Is there a command to round decimal numbers in txt files?How to set default scale for bc calculator?How to grep two numbers from the same line at different places using bash?Separating even and odd numbersSED copy specific section to different filesCutting a string using sed
How to prevent a hosting company from accessing a VM's encryption keys?
How did medieval manors handle population growth? Were there room for more fields to be ploughed?
Are sweatpants frowned upon on flights?
What checks exist against overuse of presidential pardons in the USA?
Get contents before a colon
Is it unusual for a math department not to have a mail/web server?
If the UK Gov. has authority to cancel article 50 notification, why do they have to agree an extension with the EU
How to say "I only speak one language which is English" in French?
Printing a list as "a, b, c." using Python
Looking for a plural noun related to ‘fulcrum’ or ‘pivot’ that denotes multiple things as crucial to success
Should I judge the efficacy of Samadhi based on the ethical qualities of the meditator?
Why can't I identify major and minor chords?
Can I lend a small amount of my own money to a bank at the federal funds rate?
Why is there no Disney logo in MCU movies?
Journal published a paper, ignoring my objections as a referee
SQL Server - How to achieve READCOMMITED and NOLOCK at the same time?
web scraping images
Are there any to-scale diagrams of the TRAPPIST-1 system?
How does attacking during a conversation affect initiative?
Normalized Malbolge to Malbolge translator
Notice period 60 days but I need to join in 45 days
Is Nikon D500 a good fit for nature and ambient-lighting portraits and occasional other uses?
Why does this London Underground poster from 1924 have a Star of David atop a Christmas tree?
Count the number of triangles
Cutting numbers into a specific decimals
How do I fetch only numbers in grep?How to calculate Pi decimals from a given offset?Is there a command to round decimal numbers in txt files?How to set default scale for bc calculator?How to grep two numbers from the same line at different places using bash?Separating even and odd numbersSED copy specific section to different filesCutting a string using sed
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I want to cut all numbers in a file to the fifth decimal only. For example, I have this file:
1.0
12.2348604202 0.0000000000 0.0000000000
0.0000000000 3.0320000648 0.0000000000
-1.3752052829 0.0000000000 5.6183021388
Ga O
8 12
Direct
0.590021042 0.500000000 0.794251030
0.409978979 0.500000000 0.205748985
0.909978943 0.000000000 0.205749006
0.090021023 -0.000000000 0.794251030
0.658887031 0.000000000 0.314083014
So, I want to have the same file but with numbers with 5 decimal places only.
command-line
add a comment |
I want to cut all numbers in a file to the fifth decimal only. For example, I have this file:
1.0
12.2348604202 0.0000000000 0.0000000000
0.0000000000 3.0320000648 0.0000000000
-1.3752052829 0.0000000000 5.6183021388
Ga O
8 12
Direct
0.590021042 0.500000000 0.794251030
0.409978979 0.500000000 0.205748985
0.909978943 0.000000000 0.205749006
0.090021023 -0.000000000 0.794251030
0.658887031 0.000000000 0.314083014
So, I want to have the same file but with numbers with 5 decimal places only.
command-line
add a comment |
I want to cut all numbers in a file to the fifth decimal only. For example, I have this file:
1.0
12.2348604202 0.0000000000 0.0000000000
0.0000000000 3.0320000648 0.0000000000
-1.3752052829 0.0000000000 5.6183021388
Ga O
8 12
Direct
0.590021042 0.500000000 0.794251030
0.409978979 0.500000000 0.205748985
0.909978943 0.000000000 0.205749006
0.090021023 -0.000000000 0.794251030
0.658887031 0.000000000 0.314083014
So, I want to have the same file but with numbers with 5 decimal places only.
command-line
I want to cut all numbers in a file to the fifth decimal only. For example, I have this file:
1.0
12.2348604202 0.0000000000 0.0000000000
0.0000000000 3.0320000648 0.0000000000
-1.3752052829 0.0000000000 5.6183021388
Ga O
8 12
Direct
0.590021042 0.500000000 0.794251030
0.409978979 0.500000000 0.205748985
0.909978943 0.000000000 0.205749006
0.090021023 -0.000000000 0.794251030
0.658887031 0.000000000 0.314083014
So, I want to have the same file but with numbers with 5 decimal places only.
command-line
command-line
edited 3 hours ago
dessert
28.8k7 gold badges86 silver badges119 bronze badges
28.8k7 gold badges86 silver badges119 bronze badges
asked 9 hours ago
Eslam SaadEslam Saad
183 bronze badges
183 bronze badges
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
You can use sed
:
sed -E 's/([0-9]+.[0-9]5)[0-9]*/1/g' file
Add -i
option to add file in place.
add a comment |
With GNU awk
:
awk 'print gensub(/([0-9]+.[0-9]5)[0-9]*/, "\1", "g")' input_file > output_file
This uses the awk
function gensub
to select a decimal number (/([0-9]+.[0-9]5)[0-9]*/
) from a given file (input_file
) and split it into two parts. The first part has 5 decimal places (([0-9]+.[0-9]5)
) and the second part is the rest of the decimal number (([0-9]*)
). gensub
then replaces the selected number with its first part ("\1"
) and does that for all the decimal numbers it can find ("g"
) in input_file
.
The command then saves the result to an output file (> output_file
).
add a comment |
With GNU sed
:
sed -E 's/.([0-9]5)[0-9]*/.1/g' file
Output:
1.0
12.23486 0.00000 0.00000
0.00000 3.03200 0.00000
-1.37520 0.00000 5.61830
Ga O
8 12
Direct
0.59002 0.50000 0.79425
0.40997 0.50000 0.20574
0.90997 0.00000 0.20574
0.09002 -0.00000 0.79425
0.65888 0.00000 0.31408
Use extended regular expressions with -E
:
sed -E
Match the pattern .<five digits><n digits>
with .([0-9]5)[0-9]*
. Capture the 5 digits following the dot .
with ([0-9]5)
s/.([0-9]5)[0-9]*/
Replace the match with the dot .
and the captured pattern:
/.1/
Could you add an explanation and maybe an example output please?
– dessert
3 hours ago
@dessert done it.
– guillermo chamorro
2 hours ago
add a comment |
If you don't mind the integers also being converted to floating point, you could use numfmt
:
$ numfmt --field=1- --format=%.5f --invalid=ignore < file
1.00000
12.23487 0.00000 0.00000
0.00000 3.03201 0.00000
-1.37521 0.00000 5.61831
Ga O
8.00000 12.00000
Direct
0.59003 0.50000 0.79426
0.40998 0.50000 0.20575
0.90998 0.00000 0.20575
0.09003 0.00000 0.79426
0.65889 0.00000 0.31409
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "89"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1169138%2fcutting-numbers-into-a-specific-decimals%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use sed
:
sed -E 's/([0-9]+.[0-9]5)[0-9]*/1/g' file
Add -i
option to add file in place.
add a comment |
You can use sed
:
sed -E 's/([0-9]+.[0-9]5)[0-9]*/1/g' file
Add -i
option to add file in place.
add a comment |
You can use sed
:
sed -E 's/([0-9]+.[0-9]5)[0-9]*/1/g' file
Add -i
option to add file in place.
You can use sed
:
sed -E 's/([0-9]+.[0-9]5)[0-9]*/1/g' file
Add -i
option to add file in place.
edited 8 hours ago
answered 9 hours ago
pLumopLumo
10.8k23 silver badges51 bronze badges
10.8k23 silver badges51 bronze badges
add a comment |
add a comment |
With GNU awk
:
awk 'print gensub(/([0-9]+.[0-9]5)[0-9]*/, "\1", "g")' input_file > output_file
This uses the awk
function gensub
to select a decimal number (/([0-9]+.[0-9]5)[0-9]*/
) from a given file (input_file
) and split it into two parts. The first part has 5 decimal places (([0-9]+.[0-9]5)
) and the second part is the rest of the decimal number (([0-9]*)
). gensub
then replaces the selected number with its first part ("\1"
) and does that for all the decimal numbers it can find ("g"
) in input_file
.
The command then saves the result to an output file (> output_file
).
add a comment |
With GNU awk
:
awk 'print gensub(/([0-9]+.[0-9]5)[0-9]*/, "\1", "g")' input_file > output_file
This uses the awk
function gensub
to select a decimal number (/([0-9]+.[0-9]5)[0-9]*/
) from a given file (input_file
) and split it into two parts. The first part has 5 decimal places (([0-9]+.[0-9]5)
) and the second part is the rest of the decimal number (([0-9]*)
). gensub
then replaces the selected number with its first part ("\1"
) and does that for all the decimal numbers it can find ("g"
) in input_file
.
The command then saves the result to an output file (> output_file
).
add a comment |
With GNU awk
:
awk 'print gensub(/([0-9]+.[0-9]5)[0-9]*/, "\1", "g")' input_file > output_file
This uses the awk
function gensub
to select a decimal number (/([0-9]+.[0-9]5)[0-9]*/
) from a given file (input_file
) and split it into two parts. The first part has 5 decimal places (([0-9]+.[0-9]5)
) and the second part is the rest of the decimal number (([0-9]*)
). gensub
then replaces the selected number with its first part ("\1"
) and does that for all the decimal numbers it can find ("g"
) in input_file
.
The command then saves the result to an output file (> output_file
).
With GNU awk
:
awk 'print gensub(/([0-9]+.[0-9]5)[0-9]*/, "\1", "g")' input_file > output_file
This uses the awk
function gensub
to select a decimal number (/([0-9]+.[0-9]5)[0-9]*/
) from a given file (input_file
) and split it into two parts. The first part has 5 decimal places (([0-9]+.[0-9]5)
) and the second part is the rest of the decimal number (([0-9]*)
). gensub
then replaces the selected number with its first part ("\1"
) and does that for all the decimal numbers it can find ("g"
) in input_file
.
The command then saves the result to an output file (> output_file
).
edited 3 hours ago
answered 7 hours ago
user3140225user3140225
1,2867 silver badges19 bronze badges
1,2867 silver badges19 bronze badges
add a comment |
add a comment |
With GNU sed
:
sed -E 's/.([0-9]5)[0-9]*/.1/g' file
Output:
1.0
12.23486 0.00000 0.00000
0.00000 3.03200 0.00000
-1.37520 0.00000 5.61830
Ga O
8 12
Direct
0.59002 0.50000 0.79425
0.40997 0.50000 0.20574
0.90997 0.00000 0.20574
0.09002 -0.00000 0.79425
0.65888 0.00000 0.31408
Use extended regular expressions with -E
:
sed -E
Match the pattern .<five digits><n digits>
with .([0-9]5)[0-9]*
. Capture the 5 digits following the dot .
with ([0-9]5)
s/.([0-9]5)[0-9]*/
Replace the match with the dot .
and the captured pattern:
/.1/
Could you add an explanation and maybe an example output please?
– dessert
3 hours ago
@dessert done it.
– guillermo chamorro
2 hours ago
add a comment |
With GNU sed
:
sed -E 's/.([0-9]5)[0-9]*/.1/g' file
Output:
1.0
12.23486 0.00000 0.00000
0.00000 3.03200 0.00000
-1.37520 0.00000 5.61830
Ga O
8 12
Direct
0.59002 0.50000 0.79425
0.40997 0.50000 0.20574
0.90997 0.00000 0.20574
0.09002 -0.00000 0.79425
0.65888 0.00000 0.31408
Use extended regular expressions with -E
:
sed -E
Match the pattern .<five digits><n digits>
with .([0-9]5)[0-9]*
. Capture the 5 digits following the dot .
with ([0-9]5)
s/.([0-9]5)[0-9]*/
Replace the match with the dot .
and the captured pattern:
/.1/
Could you add an explanation and maybe an example output please?
– dessert
3 hours ago
@dessert done it.
– guillermo chamorro
2 hours ago
add a comment |
With GNU sed
:
sed -E 's/.([0-9]5)[0-9]*/.1/g' file
Output:
1.0
12.23486 0.00000 0.00000
0.00000 3.03200 0.00000
-1.37520 0.00000 5.61830
Ga O
8 12
Direct
0.59002 0.50000 0.79425
0.40997 0.50000 0.20574
0.90997 0.00000 0.20574
0.09002 -0.00000 0.79425
0.65888 0.00000 0.31408
Use extended regular expressions with -E
:
sed -E
Match the pattern .<five digits><n digits>
with .([0-9]5)[0-9]*
. Capture the 5 digits following the dot .
with ([0-9]5)
s/.([0-9]5)[0-9]*/
Replace the match with the dot .
and the captured pattern:
/.1/
With GNU sed
:
sed -E 's/.([0-9]5)[0-9]*/.1/g' file
Output:
1.0
12.23486 0.00000 0.00000
0.00000 3.03200 0.00000
-1.37520 0.00000 5.61830
Ga O
8 12
Direct
0.59002 0.50000 0.79425
0.40997 0.50000 0.20574
0.90997 0.00000 0.20574
0.09002 -0.00000 0.79425
0.65888 0.00000 0.31408
Use extended regular expressions with -E
:
sed -E
Match the pattern .<five digits><n digits>
with .([0-9]5)[0-9]*
. Capture the 5 digits following the dot .
with ([0-9]5)
s/.([0-9]5)[0-9]*/
Replace the match with the dot .
and the captured pattern:
/.1/
edited 2 hours ago
answered 9 hours ago
guillermo chamorroguillermo chamorro
5821 silver badge12 bronze badges
5821 silver badge12 bronze badges
Could you add an explanation and maybe an example output please?
– dessert
3 hours ago
@dessert done it.
– guillermo chamorro
2 hours ago
add a comment |
Could you add an explanation and maybe an example output please?
– dessert
3 hours ago
@dessert done it.
– guillermo chamorro
2 hours ago
Could you add an explanation and maybe an example output please?
– dessert
3 hours ago
Could you add an explanation and maybe an example output please?
– dessert
3 hours ago
@dessert done it.
– guillermo chamorro
2 hours ago
@dessert done it.
– guillermo chamorro
2 hours ago
add a comment |
If you don't mind the integers also being converted to floating point, you could use numfmt
:
$ numfmt --field=1- --format=%.5f --invalid=ignore < file
1.00000
12.23487 0.00000 0.00000
0.00000 3.03201 0.00000
-1.37521 0.00000 5.61831
Ga O
8.00000 12.00000
Direct
0.59003 0.50000 0.79426
0.40998 0.50000 0.20575
0.90998 0.00000 0.20575
0.09003 0.00000 0.79426
0.65889 0.00000 0.31409
add a comment |
If you don't mind the integers also being converted to floating point, you could use numfmt
:
$ numfmt --field=1- --format=%.5f --invalid=ignore < file
1.00000
12.23487 0.00000 0.00000
0.00000 3.03201 0.00000
-1.37521 0.00000 5.61831
Ga O
8.00000 12.00000
Direct
0.59003 0.50000 0.79426
0.40998 0.50000 0.20575
0.90998 0.00000 0.20575
0.09003 0.00000 0.79426
0.65889 0.00000 0.31409
add a comment |
If you don't mind the integers also being converted to floating point, you could use numfmt
:
$ numfmt --field=1- --format=%.5f --invalid=ignore < file
1.00000
12.23487 0.00000 0.00000
0.00000 3.03201 0.00000
-1.37521 0.00000 5.61831
Ga O
8.00000 12.00000
Direct
0.59003 0.50000 0.79426
0.40998 0.50000 0.20575
0.90998 0.00000 0.20575
0.09003 0.00000 0.79426
0.65889 0.00000 0.31409
If you don't mind the integers also being converted to floating point, you could use numfmt
:
$ numfmt --field=1- --format=%.5f --invalid=ignore < file
1.00000
12.23487 0.00000 0.00000
0.00000 3.03201 0.00000
-1.37521 0.00000 5.61831
Ga O
8.00000 12.00000
Direct
0.59003 0.50000 0.79426
0.40998 0.50000 0.20575
0.90998 0.00000 0.20575
0.09003 0.00000 0.79426
0.65889 0.00000 0.31409
answered 19 mins ago
steeldriversteeldriver
78.2k12 gold badges129 silver badges210 bronze badges
78.2k12 gold badges129 silver badges210 bronze badges
add a comment |
add a comment |
Thanks for contributing an answer to Ask Ubuntu!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1169138%2fcutting-numbers-into-a-specific-decimals%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown