我有一個如下所示的 CSV 檔案:
English, "Hawkin, Jason" ,[email protected]
English, "McDonald, Matt" ,[email protected]
English, "Campbell, Josh" ,[email protected]
我的目的是制作一個 Bash 腳本來制作具有以下格式的第二個 CSV 檔案:
ID, Email, FNAME, LNAME
jhawkin110, [email protected], Jason, Hawkin
使用“cut”洗掉我不需要的第一列后,我對如何通過提取“電子郵件”的第一部分來創建“ID”感到茫然。
uj5u.com熱心網友回復:
使用 awk
$ awk 'BEGIN {FS=OFS=","; print "ID, Email, FNAME, LNAME"}{gsub(/"/,"");split($NF,a,"@"); print tolower(a[1])," " $NF, $3, $2}' input_file
ID, Email, FNAME, LNAME
jhawkin110, [email protected], Jason , Hawkin
mmcdonald114, [email protected], Matt , McDonald
jcampbell111, [email protected], Josh , Campbell
使用 sed
$ sed -E 's/.*"([^,]*),([^"]*)..,(([^@]*)@.*)/\3,\2, \1,\L\4/;s/(.*),(.*)/\2, \1/;1iID, Email, FNAME, LNAME' input_file
ID, Email, FNAME, LNAME
jhawkin110, [email protected], Jason, Hawkin
mmcdonald114, [email protected], Matt, McDonald
jcampbell111, [email protected], Josh, Campbell
uj5u.com熱心網友回復:
echo 'ID, Email, FNAME, LNAME'
awk -v FS=', *"?|"? *,' \
-v OFS=', ' \
'{split($4,a,"@"); print tolower(a[1]),$4,$3,$2}' file.csv
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/372783.html
上一篇:如何使用data.table的fwrite以字符格式為Excel保留數字
下一篇:psql匯入csv并生成uuid
