Extract species ID number for specific species from file with awk
Clash Royale CLAN TAG#URR8PPP
up vote
3
down vote
favorite
I need to Write an awk
command that will return the identification number from the following table for only the lines where the title is Turtle
. This table is stored in turtle.txt
Id Num. Title CatchDate
433417 RedTurtle 2001-06-29
493303 BlueTurtle 1998-09-20
259497 Turtle 1985-05-08
229505 RedTurtle 1994-07-13
473076 OrangeTurtle 2002-03-08
221907 Blueturtle 1999-07-02
457032 Turtle 1993-04-09
490359 RedTurtle 1996-11-12
494595 SnappingTurtle 1985-05-20
402421 BlueTurtle 1999-08-16
text-processing awk
New contributor
Kamat is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |Â
up vote
3
down vote
favorite
I need to Write an awk
command that will return the identification number from the following table for only the lines where the title is Turtle
. This table is stored in turtle.txt
Id Num. Title CatchDate
433417 RedTurtle 2001-06-29
493303 BlueTurtle 1998-09-20
259497 Turtle 1985-05-08
229505 RedTurtle 1994-07-13
473076 OrangeTurtle 2002-03-08
221907 Blueturtle 1999-07-02
457032 Turtle 1993-04-09
490359 RedTurtle 1996-11-12
494595 SnappingTurtle 1985-05-20
402421 BlueTurtle 1999-08-16
text-processing awk
New contributor
Kamat is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |Â
up vote
3
down vote
favorite
up vote
3
down vote
favorite
I need to Write an awk
command that will return the identification number from the following table for only the lines where the title is Turtle
. This table is stored in turtle.txt
Id Num. Title CatchDate
433417 RedTurtle 2001-06-29
493303 BlueTurtle 1998-09-20
259497 Turtle 1985-05-08
229505 RedTurtle 1994-07-13
473076 OrangeTurtle 2002-03-08
221907 Blueturtle 1999-07-02
457032 Turtle 1993-04-09
490359 RedTurtle 1996-11-12
494595 SnappingTurtle 1985-05-20
402421 BlueTurtle 1999-08-16
text-processing awk
New contributor
Kamat is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
I need to Write an awk
command that will return the identification number from the following table for only the lines where the title is Turtle
. This table is stored in turtle.txt
Id Num. Title CatchDate
433417 RedTurtle 2001-06-29
493303 BlueTurtle 1998-09-20
259497 Turtle 1985-05-08
229505 RedTurtle 1994-07-13
473076 OrangeTurtle 2002-03-08
221907 Blueturtle 1999-07-02
457032 Turtle 1993-04-09
490359 RedTurtle 1996-11-12
494595 SnappingTurtle 1985-05-20
402421 BlueTurtle 1999-08-16
text-processing awk
text-processing awk
New contributor
Kamat is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Kamat is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
edited 14 mins ago


Kusalananda
108k14210333
108k14210333
New contributor
Kamat is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked 1 hour ago
Kamat
162
162
New contributor
Kamat is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Kamat is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Kamat is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |Â
add a comment |Â
5 Answers
5
active
oldest
votes
up vote
5
down vote
You can use:
awk '$2 == "Turtle" print $1' file
259497
457032
add a comment |Â
up vote
5
down vote
awk '$2 == "Turtle" print $1' turtle.txt
259497
457032
$2 is the field to select
Turtle is the text to match
print $1 is to print the first field.
turtle.txt is the name of the source file.
add a comment |Â
up vote
4
down vote
Golfing it:
$ awk '$2=="Turtle"&&$0=$1' <file
259497
457032
Or, expanded in stages until we reach Isaac's and Goro's answers
awk '$2 == "Turtle" && $0 = $1' <file
awk '$2 == "Turtle" $0 = $1; print ' <file
awk '$2 == "Turtle" print $1 ' <file
The three are not exactly equivalent as my golfed code would not print the number if it was zero.
Here's a proper sed
solution to make up for the golfing above:
$ sed -n '/<Turtle>/s/[[:blank:]].*//p' <file
259497
457032
It finds all lines containing the word Turtle
and then removes everything after the first space or tab character on those lines before printing them (printing of other lines is inhibited by -n
).
The <
and >
matches word start and end boundaries so that <Turtle>
matches only the string Turtle
and not e.g. RedTurtle
.
add a comment |Â
up vote
3
down vote
non-awk alternative:
grep -w "Turtle" turtle.txt | cut -d " " -f 1
add a comment |Â
up vote
3
down vote
Using sed:
sed -n '/sTurtles/s/^([0-9]+)s.*/1/p' file
add a comment |Â
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
5
down vote
You can use:
awk '$2 == "Turtle" print $1' file
259497
457032
add a comment |Â
up vote
5
down vote
You can use:
awk '$2 == "Turtle" print $1' file
259497
457032
add a comment |Â
up vote
5
down vote
up vote
5
down vote
You can use:
awk '$2 == "Turtle" print $1' file
259497
457032
You can use:
awk '$2 == "Turtle" print $1' file
259497
457032
edited 57 mins ago
answered 1 hour ago
Goro
7,49753170
7,49753170
add a comment |Â
add a comment |Â
up vote
5
down vote
awk '$2 == "Turtle" print $1' turtle.txt
259497
457032
$2 is the field to select
Turtle is the text to match
print $1 is to print the first field.
turtle.txt is the name of the source file.
add a comment |Â
up vote
5
down vote
awk '$2 == "Turtle" print $1' turtle.txt
259497
457032
$2 is the field to select
Turtle is the text to match
print $1 is to print the first field.
turtle.txt is the name of the source file.
add a comment |Â
up vote
5
down vote
up vote
5
down vote
awk '$2 == "Turtle" print $1' turtle.txt
259497
457032
$2 is the field to select
Turtle is the text to match
print $1 is to print the first field.
turtle.txt is the name of the source file.
awk '$2 == "Turtle" print $1' turtle.txt
259497
457032
$2 is the field to select
Turtle is the text to match
print $1 is to print the first field.
turtle.txt is the name of the source file.
edited 40 mins ago
answered 1 hour ago


Isaac
7,80711137
7,80711137
add a comment |Â
add a comment |Â
up vote
4
down vote
Golfing it:
$ awk '$2=="Turtle"&&$0=$1' <file
259497
457032
Or, expanded in stages until we reach Isaac's and Goro's answers
awk '$2 == "Turtle" && $0 = $1' <file
awk '$2 == "Turtle" $0 = $1; print ' <file
awk '$2 == "Turtle" print $1 ' <file
The three are not exactly equivalent as my golfed code would not print the number if it was zero.
Here's a proper sed
solution to make up for the golfing above:
$ sed -n '/<Turtle>/s/[[:blank:]].*//p' <file
259497
457032
It finds all lines containing the word Turtle
and then removes everything after the first space or tab character on those lines before printing them (printing of other lines is inhibited by -n
).
The <
and >
matches word start and end boundaries so that <Turtle>
matches only the string Turtle
and not e.g. RedTurtle
.
add a comment |Â
up vote
4
down vote
Golfing it:
$ awk '$2=="Turtle"&&$0=$1' <file
259497
457032
Or, expanded in stages until we reach Isaac's and Goro's answers
awk '$2 == "Turtle" && $0 = $1' <file
awk '$2 == "Turtle" $0 = $1; print ' <file
awk '$2 == "Turtle" print $1 ' <file
The three are not exactly equivalent as my golfed code would not print the number if it was zero.
Here's a proper sed
solution to make up for the golfing above:
$ sed -n '/<Turtle>/s/[[:blank:]].*//p' <file
259497
457032
It finds all lines containing the word Turtle
and then removes everything after the first space or tab character on those lines before printing them (printing of other lines is inhibited by -n
).
The <
and >
matches word start and end boundaries so that <Turtle>
matches only the string Turtle
and not e.g. RedTurtle
.
add a comment |Â
up vote
4
down vote
up vote
4
down vote
Golfing it:
$ awk '$2=="Turtle"&&$0=$1' <file
259497
457032
Or, expanded in stages until we reach Isaac's and Goro's answers
awk '$2 == "Turtle" && $0 = $1' <file
awk '$2 == "Turtle" $0 = $1; print ' <file
awk '$2 == "Turtle" print $1 ' <file
The three are not exactly equivalent as my golfed code would not print the number if it was zero.
Here's a proper sed
solution to make up for the golfing above:
$ sed -n '/<Turtle>/s/[[:blank:]].*//p' <file
259497
457032
It finds all lines containing the word Turtle
and then removes everything after the first space or tab character on those lines before printing them (printing of other lines is inhibited by -n
).
The <
and >
matches word start and end boundaries so that <Turtle>
matches only the string Turtle
and not e.g. RedTurtle
.
Golfing it:
$ awk '$2=="Turtle"&&$0=$1' <file
259497
457032
Or, expanded in stages until we reach Isaac's and Goro's answers
awk '$2 == "Turtle" && $0 = $1' <file
awk '$2 == "Turtle" $0 = $1; print ' <file
awk '$2 == "Turtle" print $1 ' <file
The three are not exactly equivalent as my golfed code would not print the number if it was zero.
Here's a proper sed
solution to make up for the golfing above:
$ sed -n '/<Turtle>/s/[[:blank:]].*//p' <file
259497
457032
It finds all lines containing the word Turtle
and then removes everything after the first space or tab character on those lines before printing them (printing of other lines is inhibited by -n
).
The <
and >
matches word start and end boundaries so that <Turtle>
matches only the string Turtle
and not e.g. RedTurtle
.
edited 12 mins ago
answered 36 mins ago


Kusalananda
108k14210333
108k14210333
add a comment |Â
add a comment |Â
up vote
3
down vote
non-awk alternative:
grep -w "Turtle" turtle.txt | cut -d " " -f 1
add a comment |Â
up vote
3
down vote
non-awk alternative:
grep -w "Turtle" turtle.txt | cut -d " " -f 1
add a comment |Â
up vote
3
down vote
up vote
3
down vote
non-awk alternative:
grep -w "Turtle" turtle.txt | cut -d " " -f 1
non-awk alternative:
grep -w "Turtle" turtle.txt | cut -d " " -f 1
answered 1 hour ago


RobotJohnny
740216
740216
add a comment |Â
add a comment |Â
up vote
3
down vote
Using sed:
sed -n '/sTurtles/s/^([0-9]+)s.*/1/p' file
add a comment |Â
up vote
3
down vote
Using sed:
sed -n '/sTurtles/s/^([0-9]+)s.*/1/p' file
add a comment |Â
up vote
3
down vote
up vote
3
down vote
Using sed:
sed -n '/sTurtles/s/^([0-9]+)s.*/1/p' file
Using sed:
sed -n '/sTurtles/s/^([0-9]+)s.*/1/p' file
answered 53 mins ago
oliv
1,121210
1,121210
add a comment |Â
add a comment |Â
Kamat is a new contributor. Be nice, and check out our Code of Conduct.
Kamat is a new contributor. Be nice, and check out our Code of Conduct.
Kamat is a new contributor. Be nice, and check out our Code of Conduct.
Kamat 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
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f473978%2fextract-species-id-number-for-specific-species-from-file-with-awk%23new-answer', 'question_page');
);
Post as a guest
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
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
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