awk - pattern matching and selecting digits for printing -


i have file long line containing many columns header each column this.

bmr_22@o15-bmr_1@o23-h23 bmr_14@o22-bmr_1@o26-h26 bmr_14@o14-bmr_1@o26-h26 bmr_14@o12-bmr_1@o16-h16 bmr_17@o26-bmr_2@o24-h24 bms_88@o22-bmr_4@o22-h22 bms_89@o22-bmr_4@o26-h26 bms_89@o12-bmr_4@o12-h12 bmr_15@o25-bmr_15@o26-h26 bms_96@o25-bmr_5@o16-h16 bmr_13@o23-bmr_6@o26-h26 bmr_27@o22-bmr_126@o12-h12 bmr_17@o26-bmr_6@o13-h13 bmr_26@o26-bmr_6@o16-h16 bmr_29@o26-bmr_7@o16-h16 bms_86@o23-bmr_19@o26-h26 bms_78@o16-bmr_9@o16-h16 bms_96@o24-bmr_10@o23-h23 bmr_14@o25-bmr_11@o24-h24 bms_90@o22-bmr_11@o26-h26 bmr_25@o13-bmr_11@o12-h12 bmr_120@o24-bmr_11@o13-h13 bmr_25@o22-bmr_11@o13-h13 bms_65@o24-bmr_12@o23-h23 bmr_31@o11-bmr_12@o12-h12 

i select columns based on criteria. if use command below:

awk 'nr==1{for (i=1;i<=nf;i++) if ($i~/^bmr_[1-9]@o13-bmr/) print $i } ' inputfile 

i like:

bmr_1@o13-bmr_14@o13-h13 bmr_2@o13-bmr_16@o13-h13 bmr_6@o13-bmr_27@o23-h23 bmr_2@o13-bmr_16@o12-h12 bmr_1@o13-bmr_30@o26-h26 bmr_1@o13-bmr_11@o23-h23 bmr_1@o13-bmr_14@o22-h22 bmr_6@o13-bmr_27@o22-h22 

if use command below:

awk 'nr==1{for (i=1;i<=nf;i++) if ($i~/^bmr_[1-9][1-9]@o13-bmr/) print $i } ' inputfile 

i output below:

bmr_25@o13-bmr_11@o12-h12 bmr_26@o13-bmr_25@o12-h12 bmr_17@o13-bmr_27@o13-h13 bmr_64@o13-bmr_39@o12-h12 bmr_58@o13-bmr_44@o16-h16 bmr_36@o13-bmr_61@o12-h12 bmr_36@o13-bmr_61@o13-h13 

what command if want select both, single , double digits (like bmr_2@o13-bmr_16@o12-h12 , bmr_26@o13-bmr_25@o12-h12) in 1 run ?

you can specify repetition 1 or 2 in single awk command below:

awk --posix 'nr==1{for (i=1;i<=nf;i++) if ($i~/^bmr_[1-9]{1,2}@o13-bmr/) print $i } ' inputfile 

Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

gradle error "Cannot convert the provided notation to a File or URI" -

python - NameError: name 'subprocess' is not defined -