尝试在最后一个之后获得一个新列的输出,该列使用第一个名字的第一个字母和姓氏的其余部分。使用awk输入的正确方法是什么?
INPUT:
Vincent Nguyen
David Pham
Bobby Hill
输出:
Vincent Nguyen vnguyen
David Pham dpham
Bobby Hill bhill
答案 0 :(得分:3)
你可以这样做:
awk '{print $0,tolower(substr($1,1,1)$NF)}' file
Vincent Nguyen vnguyen
David Pham dpham
Bobby Hill bhill
可以缩短一些:(但不太健壮)
awk '$0=$0FS tolower(substr($1,1,1)$NF)' file
更新以支持更长的名称,如:
Bobby Bigfoot Hill
给出
Bobby Bigfoot Hill bhill
答案 1 :(得分:2)
根据您的示例,尝试使用此sed
oneliner:
sed -r 's/(.)\S* (.*)/& \L\1\2/' file
试验:
kent$ cat f
Vincent Nguyen
David Pham
Bobby Hill
kent$ sed -r 's/(.)\S* (.*)/& \L\1\2/' f
Vincent Nguyen vnguyen
David Pham dpham
Bobby Hill bhill