各行の最後の文字列の2番目の項目を置き換えます。

各行の最後の文字列の2番目の項目を置き換えます。

次の内容を含むサンプル出力ファイルがあります。

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 ;

私の目標は、最後の列から2番目の列を変更することです。この場合、table;しかし、その列は一意ではないので、必ずしもそうする必要はありません。table。入れ替えたいです。datadbs

答え1

NFの特殊変数には、awk現在行のスペースで区切られたフィールドの数があります。したがって、$(NF-1)最後から2番目のフィールドになるので、次のことができます。

awk 'NF>1 && $(NF-1) = "datadbs"' file

関連情報