awk: 変更された列をファイルに追加し、元の列を保持します。

awk: 変更された列をファイルに追加し、元の列を保持します。

2つの列を持つファイルがあります。

path/path/target1.target2 column2

awkを使って印刷したいです。

column1 column2 target1 target2

修正するために次のように試しましたが、元の列が失われました。

$ awk '{gsub("\\..*","", $(gsub(".*/","", $1))); gsub(".*_","", $1); print $0}'
target1 column2

どうすればいいですか?この行動を説明できますか?

ベストアンサー1

方法は次のとおりですawk

$ awk '{ 
         split($1,parts,"."); 
         sub(".*/","",parts[1]); 
         print $1, $2, parts[1], parts[2]
       }' file
path/path/target1.target2 column2 target1 target2

なぜあなたのものがうまくいかないのかエマ・ルーオが説明するこれは、値を変更しても$1期待どおりに印刷できないためです。

おすすめ記事