試圖實現在使用名字的第一個字母和姓氏的其餘部分後的最後一個字段的輸出。使用awk輸入這個輸出的正確方法是什麼?(AWK)使用名字和姓氏列中的字符創建用戶名列
輸入:
Vincent Nguyen
David Pham
Bobby Hill
輸出:
Vincent Nguyen vnguyen
David Pham dpham
Bobby Hill bhill
試圖實現在使用名字的第一個字母和姓氏的其餘部分後的最後一個字段的輸出。使用awk輸入這個輸出的正確方法是什麼?(AWK)使用名字和姓氏列中的字符創建用戶名列
輸入:
Vincent Nguyen
David Pham
Bobby Hill
輸出:
Vincent Nguyen vnguyen
David Pham dpham
Bobby Hill bhill
你可以這樣做:
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
根據你的榜樣,試試這個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
+1祝賀達到10K – user000001
@ user000001謝謝,感覺不錯:) – Jotne