Заменить предпоследнее вхождение строки в каждой строке

Заменить предпоследнее вхождение строки в каждой строке

У меня есть пример выходного файла со следующим содержимым:

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

Связанный контент