awkを使用して(時々)列の最初の文字を削除する方法は?

awkを使用して(時々)列の最初の文字を削除する方法は?

次のようにコマンドを実行し、awkを介してパイプします。

mycommand | awk '{print $1,tolower($3),$4}

これにより、次のような結果が得られます。

fred.o: t .abcdefg 
fred.o: u .rstuvwxy 
fred.o: t .defghi 
fred.o: t .jklmnop 
fred.o: d abcdefg 
fred.o: d zyxwvuts 

ご覧のように、3番目の列には前に「.」が含まれることもありますが、必ずしもそうではありません。

awk3番目の列の先行する「.」を削除するには、コマンドをどのように変更しますか?たとえば、私の出力は次のようになります。

fred.o: t abcdefg  
fred.o: u rstuvwxy  
fred.o: t defghi  
fred.o: t jklmnop  
fred.o: d abcdefg  
fred.o: d zyxwvuts  

ベストアンサー1

mycommand | awk '{sub(/^\./, "", $4);print $1,tolower($3),$4}'

おすすめ記事