How to put a comma between two columns in a text file
This is my text file:
0019121002313002316003135
0057936000814000814003023
0081638001519001523001176
0090531001841001842002633
0111210001515001518000912
0115400001807001828001593
I want the processed output as:
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
How do I do this?
linux shell-script
New contributor
add a comment |
This is my text file:
0019121002313002316003135
0057936000814000814003023
0081638001519001523001176
0090531001841001842002633
0111210001515001518000912
0115400001807001828001593
I want the processed output as:
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
How do I do this?
linux shell-script
New contributor
Please don't post images of text. They are impossible to copy-paste, impossible for screen readers, and take up more bandwidth. Please replace the image with plain text.
– Sparhawk
7 hours ago
add a comment |
This is my text file:
0019121002313002316003135
0057936000814000814003023
0081638001519001523001176
0090531001841001842002633
0111210001515001518000912
0115400001807001828001593
I want the processed output as:
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
How do I do this?
linux shell-script
New contributor
This is my text file:
0019121002313002316003135
0057936000814000814003023
0081638001519001523001176
0090531001841001842002633
0111210001515001518000912
0115400001807001828001593
I want the processed output as:
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
How do I do this?
linux shell-script
linux shell-script
New contributor
New contributor
edited 6 hours ago
Haxiel
1,733410
1,733410
New contributor
asked 8 hours ago
AdityaAditya
43
43
New contributor
New contributor
Please don't post images of text. They are impossible to copy-paste, impossible for screen readers, and take up more bandwidth. Please replace the image with plain text.
– Sparhawk
7 hours ago
add a comment |
Please don't post images of text. They are impossible to copy-paste, impossible for screen readers, and take up more bandwidth. Please replace the image with plain text.
– Sparhawk
7 hours ago
Please don't post images of text. They are impossible to copy-paste, impossible for screen readers, and take up more bandwidth. Please replace the image with plain text.
– Sparhawk
7 hours ago
Please don't post images of text. They are impossible to copy-paste, impossible for screen readers, and take up more bandwidth. Please replace the image with plain text.
– Sparhawk
7 hours ago
add a comment |
3 Answers
3
active
oldest
votes
$ sed -E 's/(.{7})(.{6})(.{6})(.{6})/1,2,3,4/' file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
That is, match the bits of each line that makes up the new fields and insert comma in-between them. The matching of a field is done using .{7}
or .{6}
depending on the wanted field length.
FWIW the last capturing group is unnecessary.
– Sparhawk
6 hours ago
add a comment |
With GNU awk (gawk
) you can set explicit field widths:
$ gawk '{$1=$1} 1' FIELDWIDTHS='7 6 6 6' OFS=, file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
See Processing Fixed-Width Data
add a comment |
Assuming it is not a mistake that the first comma is after 7 characters, and the next ones are at multiples of 6, I propose
sed 's/(.......)(......)(......)/1,2,3,/'
Thanks 4 your answer.. I got my result
– Aditya
7 hours ago
add a comment |
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
});
}
});
Aditya 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%2f494992%2fhow-to-put-a-comma-between-two-columns-in-a-text-file%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
$ sed -E 's/(.{7})(.{6})(.{6})(.{6})/1,2,3,4/' file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
That is, match the bits of each line that makes up the new fields and insert comma in-between them. The matching of a field is done using .{7}
or .{6}
depending on the wanted field length.
FWIW the last capturing group is unnecessary.
– Sparhawk
6 hours ago
add a comment |
$ sed -E 's/(.{7})(.{6})(.{6})(.{6})/1,2,3,4/' file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
That is, match the bits of each line that makes up the new fields and insert comma in-between them. The matching of a field is done using .{7}
or .{6}
depending on the wanted field length.
FWIW the last capturing group is unnecessary.
– Sparhawk
6 hours ago
add a comment |
$ sed -E 's/(.{7})(.{6})(.{6})(.{6})/1,2,3,4/' file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
That is, match the bits of each line that makes up the new fields and insert comma in-between them. The matching of a field is done using .{7}
or .{6}
depending on the wanted field length.
$ sed -E 's/(.{7})(.{6})(.{6})(.{6})/1,2,3,4/' file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
That is, match the bits of each line that makes up the new fields and insert comma in-between them. The matching of a field is done using .{7}
or .{6}
depending on the wanted field length.
answered 7 hours ago
KusalanandaKusalananda
124k16234386
124k16234386
FWIW the last capturing group is unnecessary.
– Sparhawk
6 hours ago
add a comment |
FWIW the last capturing group is unnecessary.
– Sparhawk
6 hours ago
FWIW the last capturing group is unnecessary.
– Sparhawk
6 hours ago
FWIW the last capturing group is unnecessary.
– Sparhawk
6 hours ago
add a comment |
With GNU awk (gawk
) you can set explicit field widths:
$ gawk '{$1=$1} 1' FIELDWIDTHS='7 6 6 6' OFS=, file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
See Processing Fixed-Width Data
add a comment |
With GNU awk (gawk
) you can set explicit field widths:
$ gawk '{$1=$1} 1' FIELDWIDTHS='7 6 6 6' OFS=, file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
See Processing Fixed-Width Data
add a comment |
With GNU awk (gawk
) you can set explicit field widths:
$ gawk '{$1=$1} 1' FIELDWIDTHS='7 6 6 6' OFS=, file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
See Processing Fixed-Width Data
With GNU awk (gawk
) you can set explicit field widths:
$ gawk '{$1=$1} 1' FIELDWIDTHS='7 6 6 6' OFS=, file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
See Processing Fixed-Width Data
answered 2 hours ago
steeldriversteeldriver
35.5k35286
35.5k35286
add a comment |
add a comment |
Assuming it is not a mistake that the first comma is after 7 characters, and the next ones are at multiples of 6, I propose
sed 's/(.......)(......)(......)/1,2,3,/'
Thanks 4 your answer.. I got my result
– Aditya
7 hours ago
add a comment |
Assuming it is not a mistake that the first comma is after 7 characters, and the next ones are at multiples of 6, I propose
sed 's/(.......)(......)(......)/1,2,3,/'
Thanks 4 your answer.. I got my result
– Aditya
7 hours ago
add a comment |
Assuming it is not a mistake that the first comma is after 7 characters, and the next ones are at multiples of 6, I propose
sed 's/(.......)(......)(......)/1,2,3,/'
Assuming it is not a mistake that the first comma is after 7 characters, and the next ones are at multiples of 6, I propose
sed 's/(.......)(......)(......)/1,2,3,/'
answered 7 hours ago
icarusicarus
5,7711929
5,7711929
Thanks 4 your answer.. I got my result
– Aditya
7 hours ago
add a comment |
Thanks 4 your answer.. I got my result
– Aditya
7 hours ago
Thanks 4 your answer.. I got my result
– Aditya
7 hours ago
Thanks 4 your answer.. I got my result
– Aditya
7 hours ago
add a comment |
Aditya is a new contributor. Be nice, and check out our Code of Conduct.
Aditya is a new contributor. Be nice, and check out our Code of Conduct.
Aditya is a new contributor. Be nice, and check out our Code of Conduct.
Aditya 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%2f494992%2fhow-to-put-a-comma-between-two-columns-in-a-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 don't post images of text. They are impossible to copy-paste, impossible for screen readers, and take up more bandwidth. Please replace the image with plain text.
– Sparhawk
7 hours ago