1

For instance, I have the following in a tab separated text file with two columns:

blah    ABC_DE_23154_e53G_12
blah    DEF_GH_23165_f35H_36
blah    CED_BF_56412_c56T_21

I am using the following awk script to extract the lines that matches the third number in the second column falling in a specific range (between 23153 and 23167) after the second underscore (which doesn't work):

awk -F "_" '$2>23153 && $2<23167' *.txt >> output.txt

Output inside the "output.txt" file should be:

blah    ABC_DE_23154_e53G_12
blah    DEF_GH_23165_f35H_36

I have around 600 text files with around 8000 lines of data in each file.

Thanks, plasma33

3
  • 1
    Can blah ever contain a _? Commented Jan 25, 2020 at 21:38
  • It doesn't, thanks for checking. However, it would be great to have a work around that. Commented Jan 28, 2020 at 15:18
  • If you want a solution that includes a workaround for that then you should include that in your sample input/output so we have something to test against that produces a pass/fail result for input that includes that case. Commented Jan 28, 2020 at 15:19

2 Answers 2

2

I think the first problem is $2 in your awk script, because with $2 is the second column (DE, GH, BF, ...), not the third one where the numbers you want to compare are.

Then, there should be a condition and what you want to do if the condition is met.

awk -F'_' '($3>23153 && $3<23167){print}' *.txt >> output.txt

There is a condition in () and action in {}.

EDIT:

As I've been reminded in the comments, {print} action is the default one, so you can further simplify the awk script to:

awk -F'_' '($3>23153 && $3<23167)' *.txt >> output.txt

0
1

Tried with Python

k=open('filename','r')
for i in k:
    k=i.strip().split('_')[2]
    if int(k) > 23153<23167:
        print i.strip()

output

blah    ABC_DE_23154_e53G_12
blah    DEF_GH_23165_f35H_36
blah    CED_BF_56412_c56T_21
0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.