extract characters between two commas?Text processing - join every two lines with commasRemove entire row in a file if first column is repeatedMerging two files, one column at a timeJoin two textfiles on 1st column keeping order and unpairable lines from 1st fileHow to print lines if two fields have identical values?Delete lines that matches a string before commahow to remove comma and strings after a comma in a file?Fastest way to sum Nth column in text fileHow to extract the first row for each entry in the first column?Compare two files and get unmatched rows from the second file based on first and second column
Why do UK politicians seemingly ignore opinion polls on Brexit?
When blogging recipes, how can I support both readers who want the narrative/journey and ones who want the printer-friendly recipe?
COUNT(*) or MAX(id) - which is faster?
If a centaur druid Wild Shapes into a Giant Elk, do their Charge features stack?
Calculate Levenshtein distance between two strings in Python
Is there a way to make member function NOT callable from constructor?
Email Account under attack (really) - anything I can do?
Extreme, but not acceptable situation and I can't start the work tomorrow morning
Are cabin dividers used to "hide" the flex of the airplane?
I’m planning on buying a laser printer but concerned about the life cycle of toner in the machine
extract characters between two commas?
Doomsday-clock for my fantasy planet
Shall I use personal or official e-mail account when registering to external websites for work purpose?
How to move the player while also allowing forces to affect it
What do you call something that goes against the spirit of the law, but is legal when interpreting the law to the letter?
Does a dangling wire really electrocute me if I'm standing in water?
Denied boarding due to overcrowding, Sparpreis ticket. What are my rights?
What is GPS' 19 year rollover and does it present a cybersecurity issue?
Why is my log file so massive? 22gb. I am running log backups
Ideas for 3rd eye abilities
How to answer pointed "are you quitting" questioning when I don't want them to suspect
Why airport relocation isn't done gradually?
Is it legal to have the "// (c) 2019 John Smith" header in all files when there are hundreds of contributors?
Domain expired, GoDaddy holds it and is asking more money
extract characters between two commas?
Text processing - join every two lines with commasRemove entire row in a file if first column is repeatedMerging two files, one column at a timeJoin two textfiles on 1st column keeping order and unpairable lines from 1st fileHow to print lines if two fields have identical values?Delete lines that matches a string before commahow to remove comma and strings after a comma in a file?Fastest way to sum Nth column in text fileHow to extract the first row for each entry in the first column?Compare two files and get unmatched rows from the second file based on first and second column
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I have a file with ~ 3 million rows, here is the first few lines of my file:
head out.txt
NA
NA
NA
NA
NA
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752
gene85752
For those rows that are separated by ",", I want to keep everything after the first comma and before the second comma.
This is my desired output:
outgood.txt
NA
NA
NA
NA
NA
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85752
gene85752
text-processing awk
add a comment |
I have a file with ~ 3 million rows, here is the first few lines of my file:
head out.txt
NA
NA
NA
NA
NA
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752
gene85752
For those rows that are separated by ",", I want to keep everything after the first comma and before the second comma.
This is my desired output:
outgood.txt
NA
NA
NA
NA
NA
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85752
gene85752
text-processing awk
add a comment |
I have a file with ~ 3 million rows, here is the first few lines of my file:
head out.txt
NA
NA
NA
NA
NA
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752
gene85752
For those rows that are separated by ",", I want to keep everything after the first comma and before the second comma.
This is my desired output:
outgood.txt
NA
NA
NA
NA
NA
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85752
gene85752
text-processing awk
I have a file with ~ 3 million rows, here is the first few lines of my file:
head out.txt
NA
NA
NA
NA
NA
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753,gene85754
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752,gene85753
gene85752
gene85752
For those rows that are separated by ",", I want to keep everything after the first comma and before the second comma.
This is my desired output:
outgood.txt
NA
NA
NA
NA
NA
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85752
gene85752
text-processing awk
text-processing awk
asked 7 hours ago
Anna1364Anna1364
449213
449213
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
Since cut
prints non-delimited lines by default the following works
cut -f2 -d, file
1
It's nice when someone remember the little quirks of standard tools.
– Kusalananda♦
7 hours ago
add a comment |
awk -F, 'NF > 1 $1 = $2 print $1 ' file
This uses awk
to parse the file as lines consisting of comma-delimited fields.
The code detects when there is more than a single field on a line, and when there is, the first field is replaced by the second field. The first field, either unmodified or modified by the conditional code, is then printed.
With a big file, this would probably be faster:awk -F, 'print(NF>1 ? $2 : $1)'
-- since you won't have to rewrite $0
– glenn jackman
5 hours ago
@glennjackman Well, thecut
solution would be even faster in any case.
– Kusalananda♦
5 hours ago
add a comment |
awk -F, 'NF == 1 print $1
NF > 1 print $2' filename
This will print just the first string if there is no comma, second string if there is one or more comma.
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
);
);
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%2f511284%2fextract-characters-between-two-commas%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
Since cut
prints non-delimited lines by default the following works
cut -f2 -d, file
1
It's nice when someone remember the little quirks of standard tools.
– Kusalananda♦
7 hours ago
add a comment |
Since cut
prints non-delimited lines by default the following works
cut -f2 -d, file
1
It's nice when someone remember the little quirks of standard tools.
– Kusalananda♦
7 hours ago
add a comment |
Since cut
prints non-delimited lines by default the following works
cut -f2 -d, file
Since cut
prints non-delimited lines by default the following works
cut -f2 -d, file
answered 7 hours ago
iruvariruvar
12.4k63063
12.4k63063
1
It's nice when someone remember the little quirks of standard tools.
– Kusalananda♦
7 hours ago
add a comment |
1
It's nice when someone remember the little quirks of standard tools.
– Kusalananda♦
7 hours ago
1
1
It's nice when someone remember the little quirks of standard tools.
– Kusalananda♦
7 hours ago
It's nice when someone remember the little quirks of standard tools.
– Kusalananda♦
7 hours ago
add a comment |
awk -F, 'NF > 1 $1 = $2 print $1 ' file
This uses awk
to parse the file as lines consisting of comma-delimited fields.
The code detects when there is more than a single field on a line, and when there is, the first field is replaced by the second field. The first field, either unmodified or modified by the conditional code, is then printed.
With a big file, this would probably be faster:awk -F, 'print(NF>1 ? $2 : $1)'
-- since you won't have to rewrite $0
– glenn jackman
5 hours ago
@glennjackman Well, thecut
solution would be even faster in any case.
– Kusalananda♦
5 hours ago
add a comment |
awk -F, 'NF > 1 $1 = $2 print $1 ' file
This uses awk
to parse the file as lines consisting of comma-delimited fields.
The code detects when there is more than a single field on a line, and when there is, the first field is replaced by the second field. The first field, either unmodified or modified by the conditional code, is then printed.
With a big file, this would probably be faster:awk -F, 'print(NF>1 ? $2 : $1)'
-- since you won't have to rewrite $0
– glenn jackman
5 hours ago
@glennjackman Well, thecut
solution would be even faster in any case.
– Kusalananda♦
5 hours ago
add a comment |
awk -F, 'NF > 1 $1 = $2 print $1 ' file
This uses awk
to parse the file as lines consisting of comma-delimited fields.
The code detects when there is more than a single field on a line, and when there is, the first field is replaced by the second field. The first field, either unmodified or modified by the conditional code, is then printed.
awk -F, 'NF > 1 $1 = $2 print $1 ' file
This uses awk
to parse the file as lines consisting of comma-delimited fields.
The code detects when there is more than a single field on a line, and when there is, the first field is replaced by the second field. The first field, either unmodified or modified by the conditional code, is then printed.
answered 7 hours ago
Kusalananda♦Kusalananda
140k17261435
140k17261435
With a big file, this would probably be faster:awk -F, 'print(NF>1 ? $2 : $1)'
-- since you won't have to rewrite $0
– glenn jackman
5 hours ago
@glennjackman Well, thecut
solution would be even faster in any case.
– Kusalananda♦
5 hours ago
add a comment |
With a big file, this would probably be faster:awk -F, 'print(NF>1 ? $2 : $1)'
-- since you won't have to rewrite $0
– glenn jackman
5 hours ago
@glennjackman Well, thecut
solution would be even faster in any case.
– Kusalananda♦
5 hours ago
With a big file, this would probably be faster:
awk -F, 'print(NF>1 ? $2 : $1)'
-- since you won't have to rewrite $0– glenn jackman
5 hours ago
With a big file, this would probably be faster:
awk -F, 'print(NF>1 ? $2 : $1)'
-- since you won't have to rewrite $0– glenn jackman
5 hours ago
@glennjackman Well, the
cut
solution would be even faster in any case.– Kusalananda♦
5 hours ago
@glennjackman Well, the
cut
solution would be even faster in any case.– Kusalananda♦
5 hours ago
add a comment |
awk -F, 'NF == 1 print $1
NF > 1 print $2' filename
This will print just the first string if there is no comma, second string if there is one or more comma.
add a comment |
awk -F, 'NF == 1 print $1
NF > 1 print $2' filename
This will print just the first string if there is no comma, second string if there is one or more comma.
add a comment |
awk -F, 'NF == 1 print $1
NF > 1 print $2' filename
This will print just the first string if there is no comma, second string if there is one or more comma.
awk -F, 'NF == 1 print $1
NF > 1 print $2' filename
This will print just the first string if there is no comma, second string if there is one or more comma.
answered 7 hours ago
unxnutunxnut
3,80721120
3,80721120
add a comment |
add a comment |
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%2f511284%2fextract-characters-between-two-commas%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