Eu tenho um arquivo de saída de exemplo com o seguinte conteúdo:
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 ;
O meu objectivo é substituir a penúltima coluna, que neste caso étable
; no entanto, essa coluna não é única, portanto não precisa sertable
. Eu gostaria de substituir isso pordatadbs
Responder1
NF
A variável especial in awk
contém o número de campos delimitados por espaço na linha atual. Portanto, $(NF-1)
será o penúltimo campo, então basta fazer:
awk 'NF>1 && $(NF-1) = "datadbs"' file