How to sum specific rows using awk and other methods?
123|Raghu|80|90|60
234|Maya|10|20|30
123|Atul|20|30|60
413|Gita|56|71|89
745|Mohan|22|100|23
This is my text file where I need to sum the marks of each student and print them line by line.
grep awk
add a comment |
123|Raghu|80|90|60
234|Maya|10|20|30
123|Atul|20|30|60
413|Gita|56|71|89
745|Mohan|22|100|23
This is my text file where I need to sum the marks of each student and print them line by line.
grep awk
1
Let's see what you want it to look like!
– George Udosen
Jan 26 at 8:12
Raghu 230 and so on for other names
– Mohammed Affan
Jan 26 at 8:18
add a comment |
123|Raghu|80|90|60
234|Maya|10|20|30
123|Atul|20|30|60
413|Gita|56|71|89
745|Mohan|22|100|23
This is my text file where I need to sum the marks of each student and print them line by line.
grep awk
123|Raghu|80|90|60
234|Maya|10|20|30
123|Atul|20|30|60
413|Gita|56|71|89
745|Mohan|22|100|23
This is my text file where I need to sum the marks of each student and print them line by line.
grep awk
grep awk
edited Feb 7 at 3:27
Robert Longson
271411
271411
asked Jan 26 at 7:52
Mohammed AffanMohammed Affan
61
61
1
Let's see what you want it to look like!
– George Udosen
Jan 26 at 8:12
Raghu 230 and so on for other names
– Mohammed Affan
Jan 26 at 8:18
add a comment |
1
Let's see what you want it to look like!
– George Udosen
Jan 26 at 8:12
Raghu 230 and so on for other names
– Mohammed Affan
Jan 26 at 8:18
1
1
Let's see what you want it to look like!
– George Udosen
Jan 26 at 8:12
Let's see what you want it to look like!
– George Udosen
Jan 26 at 8:12
Raghu 230 and so on for other names
– Mohammed Affan
Jan 26 at 8:18
Raghu 230 and so on for other names
– Mohammed Affan
Jan 26 at 8:18
add a comment |
1 Answer
1
active
oldest
votes
You don't need awk for this, a bash script will do:
#!/bin/bash
IFS='|'
while read -r -a array line
do
i=0;sum=0;line=""
for element in "${array[@]}"
do
if [ $i -gt 1 ]
then
let sum=sum+$element
else
line=$line$element$IFS
fi
let i=i+1
done
echo "$line$sum"
done < "${1:-/dev/stdin}"
If the above script is called process and your data file is called data, running
process < data
will produce
123|Raghu|230
234|Maya|60
123|Atul|110
413|Gita|216
745|Mohan|145
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%2f1112998%2fhow-to-sum-specific-rows-using-awk-and-other-methods%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You don't need awk for this, a bash script will do:
#!/bin/bash
IFS='|'
while read -r -a array line
do
i=0;sum=0;line=""
for element in "${array[@]}"
do
if [ $i -gt 1 ]
then
let sum=sum+$element
else
line=$line$element$IFS
fi
let i=i+1
done
echo "$line$sum"
done < "${1:-/dev/stdin}"
If the above script is called process and your data file is called data, running
process < data
will produce
123|Raghu|230
234|Maya|60
123|Atul|110
413|Gita|216
745|Mohan|145
add a comment |
You don't need awk for this, a bash script will do:
#!/bin/bash
IFS='|'
while read -r -a array line
do
i=0;sum=0;line=""
for element in "${array[@]}"
do
if [ $i -gt 1 ]
then
let sum=sum+$element
else
line=$line$element$IFS
fi
let i=i+1
done
echo "$line$sum"
done < "${1:-/dev/stdin}"
If the above script is called process and your data file is called data, running
process < data
will produce
123|Raghu|230
234|Maya|60
123|Atul|110
413|Gita|216
745|Mohan|145
add a comment |
You don't need awk for this, a bash script will do:
#!/bin/bash
IFS='|'
while read -r -a array line
do
i=0;sum=0;line=""
for element in "${array[@]}"
do
if [ $i -gt 1 ]
then
let sum=sum+$element
else
line=$line$element$IFS
fi
let i=i+1
done
echo "$line$sum"
done < "${1:-/dev/stdin}"
If the above script is called process and your data file is called data, running
process < data
will produce
123|Raghu|230
234|Maya|60
123|Atul|110
413|Gita|216
745|Mohan|145
You don't need awk for this, a bash script will do:
#!/bin/bash
IFS='|'
while read -r -a array line
do
i=0;sum=0;line=""
for element in "${array[@]}"
do
if [ $i -gt 1 ]
then
let sum=sum+$element
else
line=$line$element$IFS
fi
let i=i+1
done
echo "$line$sum"
done < "${1:-/dev/stdin}"
If the above script is called process and your data file is called data, running
process < data
will produce
123|Raghu|230
234|Maya|60
123|Atul|110
413|Gita|216
745|Mohan|145
answered Feb 7 at 2:37
Robert LongsonRobert Longson
271411
271411
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%2f1112998%2fhow-to-sum-specific-rows-using-awk-and-other-methods%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
1
Let's see what you want it to look like!
– George Udosen
Jan 26 at 8:12
Raghu 230 and so on for other names
– Mohammed Affan
Jan 26 at 8:18