У меня есть пример выходного файла со следующим содержимым:
ent_status_code,time_stamp) using btree in table ;
user_id,ent_no) using btree in table ;
agent_code,ent_no) using btree in table ;
ent_no,change_ind_code) using btree in table ;
change_ind_code) using btree in table ;
using btree in table ;
using btree in table ;
ent_no) using btree in table ;
ent_status_code,time_stamp) using btree in table ;
user_id,ent_no) using btree in table ;
agent_code,ent_no) using btree in table ;
ent_no,change_ind_code) using btree in table ;
change_ind_code) using btree in table ;
using btree in table ;
using btree in table ;
ent_no) using btree in table ;
using btree in table ;
using btree in table ;
ent_no) using btree in table ;
Моя цель — заменить предпоследний столбец, который в данном случаеtable
; однако этот столбец не является уникальным, поэтому он не должен бытьtable
. Я бы хотел заменить это наdatadbs
решение1
Специальная NF
переменная in awk
содержит количество полей, разделенных пробелами, в текущей строке. Следовательно, $(NF-1)
будет предпоследним полем, так что вы можете просто сделать:
awk 'NF>1 && $(NF-1) = "datadbs"' file