How to get department wise total from text file
i have text file as below
sales|100
accounts|500
marketing|200
sales|50
sales|70
accounts|300
marketing|40
accounts|150
marketing|200
sales|80
with following script i have generated out put...
sort -t"|" -k1 a.txt|awk -F"|" -v "mth=$month" 'BEGIN { ln=0;slno=0;pg=0;dept=0 }
{
dept=$1;
{
if (dept !=x||ln > 50)
{
tot=0;
pg++;
printf ("f");
#printf ("n");
print "DEPT SUMMARY.FOR",dept,"DEPT. Page No-",pg
print "+=============================================+"
print "|Sr.|Dept |Amount Rs. |"
print "+=============================================+"
ln=0;pg=0;
}
if (dept!=x)
slno=1;
{
printf ("|%3s|%10s|%10.2f|n",slno,$1,$2);
ln++;
slno++;
x=dept;
}
}
} END {
printf ("f"); }' > summary
which gives output like this.
DEPT SUMMARY.FOR accounts DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| accounts| 150.00|
| 2| accounts| 300.00|
| 3| accounts| 500.00|
DEPT SUMMARY.FOR marketing DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| marketing| 200.00|
| 2| marketing| 200.00|
| 3| marketing| 40.00|
DEPT SUMMARY.FOR sales DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| sales| 100.00|
| 2| sales| 50.00|
| 3| sales| 70.00|
| 4| sales| 80.00|
I want output like this but i am not able to do this,Tries lot of modifications .
DEPT SUMMARY.FOR accounts DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| accounts| 150.00|
| 2| accounts| 300.00|
| 3| accounts| 500.00|
-----------------------------------------------
Total 950.00
-----------------------------------------------
DEPT SUMMARY.FOR marketing DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| marketing| 200.00|
| 2| marketing| 200.00|
| 3| marketing| 40.00|
-----------------------------------------------
Total 440.00
-----------------------------------------------
DEPT SUMMARY.FOR sales DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| sales| 100.00|
| 2| sales| 50.00|
| 3| sales| 70.00|
| 4| sales| 80.00|
-----------------------------------------------
Total 300.00
-----------------------------------------------
awk
New contributor
add a comment |
i have text file as below
sales|100
accounts|500
marketing|200
sales|50
sales|70
accounts|300
marketing|40
accounts|150
marketing|200
sales|80
with following script i have generated out put...
sort -t"|" -k1 a.txt|awk -F"|" -v "mth=$month" 'BEGIN { ln=0;slno=0;pg=0;dept=0 }
{
dept=$1;
{
if (dept !=x||ln > 50)
{
tot=0;
pg++;
printf ("f");
#printf ("n");
print "DEPT SUMMARY.FOR",dept,"DEPT. Page No-",pg
print "+=============================================+"
print "|Sr.|Dept |Amount Rs. |"
print "+=============================================+"
ln=0;pg=0;
}
if (dept!=x)
slno=1;
{
printf ("|%3s|%10s|%10.2f|n",slno,$1,$2);
ln++;
slno++;
x=dept;
}
}
} END {
printf ("f"); }' > summary
which gives output like this.
DEPT SUMMARY.FOR accounts DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| accounts| 150.00|
| 2| accounts| 300.00|
| 3| accounts| 500.00|
DEPT SUMMARY.FOR marketing DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| marketing| 200.00|
| 2| marketing| 200.00|
| 3| marketing| 40.00|
DEPT SUMMARY.FOR sales DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| sales| 100.00|
| 2| sales| 50.00|
| 3| sales| 70.00|
| 4| sales| 80.00|
I want output like this but i am not able to do this,Tries lot of modifications .
DEPT SUMMARY.FOR accounts DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| accounts| 150.00|
| 2| accounts| 300.00|
| 3| accounts| 500.00|
-----------------------------------------------
Total 950.00
-----------------------------------------------
DEPT SUMMARY.FOR marketing DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| marketing| 200.00|
| 2| marketing| 200.00|
| 3| marketing| 40.00|
-----------------------------------------------
Total 440.00
-----------------------------------------------
DEPT SUMMARY.FOR sales DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| sales| 100.00|
| 2| sales| 50.00|
| 3| sales| 70.00|
| 4| sales| 80.00|
-----------------------------------------------
Total 300.00
-----------------------------------------------
awk
New contributor
Please someone help
– Kalpesh
2 mins ago
add a comment |
i have text file as below
sales|100
accounts|500
marketing|200
sales|50
sales|70
accounts|300
marketing|40
accounts|150
marketing|200
sales|80
with following script i have generated out put...
sort -t"|" -k1 a.txt|awk -F"|" -v "mth=$month" 'BEGIN { ln=0;slno=0;pg=0;dept=0 }
{
dept=$1;
{
if (dept !=x||ln > 50)
{
tot=0;
pg++;
printf ("f");
#printf ("n");
print "DEPT SUMMARY.FOR",dept,"DEPT. Page No-",pg
print "+=============================================+"
print "|Sr.|Dept |Amount Rs. |"
print "+=============================================+"
ln=0;pg=0;
}
if (dept!=x)
slno=1;
{
printf ("|%3s|%10s|%10.2f|n",slno,$1,$2);
ln++;
slno++;
x=dept;
}
}
} END {
printf ("f"); }' > summary
which gives output like this.
DEPT SUMMARY.FOR accounts DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| accounts| 150.00|
| 2| accounts| 300.00|
| 3| accounts| 500.00|
DEPT SUMMARY.FOR marketing DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| marketing| 200.00|
| 2| marketing| 200.00|
| 3| marketing| 40.00|
DEPT SUMMARY.FOR sales DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| sales| 100.00|
| 2| sales| 50.00|
| 3| sales| 70.00|
| 4| sales| 80.00|
I want output like this but i am not able to do this,Tries lot of modifications .
DEPT SUMMARY.FOR accounts DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| accounts| 150.00|
| 2| accounts| 300.00|
| 3| accounts| 500.00|
-----------------------------------------------
Total 950.00
-----------------------------------------------
DEPT SUMMARY.FOR marketing DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| marketing| 200.00|
| 2| marketing| 200.00|
| 3| marketing| 40.00|
-----------------------------------------------
Total 440.00
-----------------------------------------------
DEPT SUMMARY.FOR sales DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| sales| 100.00|
| 2| sales| 50.00|
| 3| sales| 70.00|
| 4| sales| 80.00|
-----------------------------------------------
Total 300.00
-----------------------------------------------
awk
New contributor
i have text file as below
sales|100
accounts|500
marketing|200
sales|50
sales|70
accounts|300
marketing|40
accounts|150
marketing|200
sales|80
with following script i have generated out put...
sort -t"|" -k1 a.txt|awk -F"|" -v "mth=$month" 'BEGIN { ln=0;slno=0;pg=0;dept=0 }
{
dept=$1;
{
if (dept !=x||ln > 50)
{
tot=0;
pg++;
printf ("f");
#printf ("n");
print "DEPT SUMMARY.FOR",dept,"DEPT. Page No-",pg
print "+=============================================+"
print "|Sr.|Dept |Amount Rs. |"
print "+=============================================+"
ln=0;pg=0;
}
if (dept!=x)
slno=1;
{
printf ("|%3s|%10s|%10.2f|n",slno,$1,$2);
ln++;
slno++;
x=dept;
}
}
} END {
printf ("f"); }' > summary
which gives output like this.
DEPT SUMMARY.FOR accounts DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| accounts| 150.00|
| 2| accounts| 300.00|
| 3| accounts| 500.00|
DEPT SUMMARY.FOR marketing DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| marketing| 200.00|
| 2| marketing| 200.00|
| 3| marketing| 40.00|
DEPT SUMMARY.FOR sales DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| sales| 100.00|
| 2| sales| 50.00|
| 3| sales| 70.00|
| 4| sales| 80.00|
I want output like this but i am not able to do this,Tries lot of modifications .
DEPT SUMMARY.FOR accounts DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| accounts| 150.00|
| 2| accounts| 300.00|
| 3| accounts| 500.00|
-----------------------------------------------
Total 950.00
-----------------------------------------------
DEPT SUMMARY.FOR marketing DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| marketing| 200.00|
| 2| marketing| 200.00|
| 3| marketing| 40.00|
-----------------------------------------------
Total 440.00
-----------------------------------------------
DEPT SUMMARY.FOR sales DEPT. Page No- 1
+=============================================+
|Sr.|Dept |Amount Rs. |
+=============================================+
| 1| sales| 100.00|
| 2| sales| 50.00|
| 3| sales| 70.00|
| 4| sales| 80.00|
-----------------------------------------------
Total 300.00
-----------------------------------------------
awk
awk
New contributor
New contributor
edited 3 mins ago
Kalpesh
New contributor
asked 1 hour ago
KalpeshKalpesh
11
11
New contributor
New contributor
Please someone help
– Kalpesh
2 mins ago
add a comment |
Please someone help
– Kalpesh
2 mins ago
Please someone help
– Kalpesh
2 mins ago
Please someone help
– Kalpesh
2 mins ago
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
});
}
});
Kalpesh is a new contributor. Be nice, and check out our Code of Conduct.
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%2funix.stackexchange.com%2fquestions%2f507888%2fhow-to-get-department-wise-total-from-text-file%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Kalpesh is a new contributor. Be nice, and check out our Code of Conduct.
Kalpesh is a new contributor. Be nice, and check out our Code of Conduct.
Kalpesh is a new contributor. Be nice, and check out our Code of Conduct.
Kalpesh is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- 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%2funix.stackexchange.com%2fquestions%2f507888%2fhow-to-get-department-wise-total-from-text-file%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
Please someone help
– Kalpesh
2 mins ago