如何使用 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 

正如您所看到的,有时第三列包含一个前导“。”但不总是。

如何修改我的awk命令以摆脱前导“.”在第三列中是否存在?例如我希望我的输出看起来像这样:

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}'

相关内容