Linux命令删除整个csv文件的自动换行

问题描述 投票:0回答:1

这是我在csv文件中的示例数据。如您所见,对于ID ='51126',有一列包含自动换行格式的数据。使用atl + enter输入数据。我需要删除自动换行,并为整个csv文件输入一行。文件中有很多这样的自动换行!

ID,OPPORTUNITY ID,CREATED_DATE,TIR NAME,MS Rep,SRC_SSR_REP,REGION,HP PBM NAME,COMPANY NAME,COMPANY ADDRESS,COMPANY CITY,COMPANY STATE,COMPANY ZIPCODE,COMPANY AMID,COMPANY USER CONTACT NAME,COMPANY USER TITLE,COMPANY USER PHONE,COMPANY USER EMAIL,PARTNER COMPANY NAME,PARTNER REP NAME,PARTNER REP EMAIL,PARTNER LID,WHOLESALER,PURCHASEDGE AC NUMBER,USAGE PERIOD,DEAL TYPE,CLWB WORKED ON,DEAL NUMBER,NAMED TERRITORY SLED,MONO HP SHARE %,COLOR HP SHARE %,TOTAL HP TONER SHARE %,DEAL VALUE MONO,DEAL VALUE COLOR,TOTAL TONER DEAL VALUE,EST DISCOUNT VALUE,REBATE TYPE MONO,REBATE TYPE COLOR,DISCOUNT TYPE,DEAL START DATE,DEAL END DATE,DEAL EXTENDED END DATE,DEAL POSITION,ECLIPSE ID,ECLIPSE DEAL STATUS,ECLIPSE APPROVED DATE,ECLIPSE DEAL APPROVED BY,LOST REASON,USAGE FILE LOCATION,CREARTED BY,MODIFIED BY,MODIFIED DATE,FINALISATION_RECEIVED_DATE,FINALISATION_WORKED_DATE,DEAL_PROCESSED_BY,DEAL_FINALISED_BY,FUNNEL_COMMENT,AV_SENT_DATE,PL_REMAN_VALUE,PL_REMAN_SHARE,FINALISATION_DOC_PATH,TIME ELAPSING ON,APPROVAL SENT DATE,APPROVAL RECEIVED DATE,SECONDARY_WHOLESALER,PREVIOUSECLIPSE_ID,PurchasEdge_(Y/N),HP_TONER_UNITS,PL_REMAN_UNITS,FINALISATION_COMMENTS,RENEWAL_POSITION,PROGRAM_NAME,CUSTOMERONBOARDEDON
51128,OPP-048699,3/23/2020 21:02,Adam Dohm,Cheryl Glenn,Tiffany Debose,MARKET SOURCE,,"Flathead Valley School District (Kalispell, Whitefish, Columbia Falls)",233 1st Ave E,Kalispell,MT,59901,,Joe Biangone,Purchasing,406-758-8392,[email protected],TONERPORT INCORPORATED, ,,10293955,ESSENDANT,,12 months,Renewal,,CL091515474R4-A,SLED,97,100,98,21592,16781,38373,2452,Defend,Defend,Defend,4/15/2020 0:00,4/14/2021 0:00,4/14/2021 0:00,Won,42921984,,,,,/E/Data/Funnel/Submit/FLATHEAD VALLEY SCHOOL DISTRICT USAGE_51128.xlsx,Tiffany Debose,Tiffany Debose,3/26/2020 14:49,3/26/2020 0:00,,Bhavana P V,,,,613.97,1.6,,,,,NA,42085906,N,179,3,3/26 - Deal added on eclipse ,,SMBA,
51126,OPP-048697,3/23/2020 19:52,Xavier Weems,,Tiffany Debose,EAST,Vladimir Jaksic,"Gray Television, Inc.","​Gray Television, Inc.
4370 Peachtree Rd, NE.
​Atlanta, Ga  30319
​

",,GA,30319,DN042973875,Dottie Boudreau,Manager,404-266-8333,[email protected],"STAPLES, INC", ,,"10264576,10252948",NA,,12 months,New,,CL200351126,Commercial - Named,84,89,86,16143,7335,23478,3149,Defend,Defend,Defend,,,,AV summary and PPT sent,,,,,,"/E/Data/Funnel/Submit/GRAY TELEVISION, INC USAGE_51126.xlsb",Tiffany Debose,Tiffany Debose,3/26/2020 8:55,,,Deepthi K,,,3/26/2020 0:00,3239.96,13.8,,6/24/2020 0:00,,,NA,,N,168,27,3/24/2020 - sent for specialist approval 3/26/2020 - aV sent,,MCBigDeal,
51125,OPP-048696,3/23/2020 18:01,Xavier Weems,,Tiffany Debose,WEST,Jenni HoGlin,STURM FINANCIAL GROUP,3033 East First Avenue,Denver,CO,80206,,,,,,"STAPLES, INC", ,,"10264576,10252948",NA,,12 months,New,,CL200351125,Commercial - Non Named,42,87,65,10201,14198,24399,6369,Winback,Defend,Winback,,,,AV summary and PPT sent,,,,,,/E/Data/Funnel/Submit/STURM FINANCIAL GROUP USAGE_51125.xlsx,Tiffany Debose,Tiffany Debose,3/24/2020 7:49,,,Teja Ravi,,,3/24/2020 0:00,8417.66,34.5,,6/22/2020 0:00,,,NA,,N,127,67,3/24-AV Summary and PPT sent,,SMBA,

输出应如下所示。我仅输入ID = 51126和51125供您参考,也会输入51128! 共有73列!

"ID","OPPORTUNITY ID","CREATED_DATE","TIR NAME","MS Rep","SRC_SSR_REP","REGION","HP PBM NAME","COMPANY NAME","COMPANY ADDRESS","COMPANY CITY","COMPANY STATE","COMPANY ZIPCODE","COMPANY AMID","COMPANY USER CONTACT NAME","COMPANY USER TITLE","COMPANY USER PHONE","COMPANY USER EMAIL","PARTNER COMPANY NAME","PARTNER REP NAME","PARTNER REP EMAIL","PARTNER LID","WHOLESALER","PURCHASEDGE AC NUMBER","USAGE PERIOD","DEAL TYPE","CLWB WORKED ON","DEAL NUMBER","NAMED TERRITORY SLED","MONO HP SHARE %","COLOR HP SHARE %","TOTAL HP TONER SHARE %","DEAL VALUE MONO","DEAL VALUE COLOR","TOTAL TONER DEAL VALUE","EST DISCOUNT VALUE","REBATE TYPE MONO","REBATE TYPE COLOR","DISCOUNT TYPE","DEAL START DATE","DEAL END DATE","DEAL EXTENDED END DATE","DEAL POSITION","ECLIPSE ID","ECLIPSE DEAL STATUS","ECLIPSE APPROVED DATE","ECLIPSE DEAL APPROVED BY","LOST REASON","USAGE FILE LOCATION","CREARTED BY","MODIFIED BY","MODIFIED DATE","FINALISATION_RECEIVED_DATE","FINALISATION_WORKED_DATE","DEAL_PROCESSED_BY","DEAL_FINALISED_BY","FUNNEL_COMMENT","AV_SENT_DATE","PL_REMAN_VALUE","PL_REMAN_SHARE","FINALISATION_DOC_PATH","TIME ELAPSING ON","APPROVAL SENT DATE","APPROVAL RECEIVED DATE","SECONDARY_WHOLESALER","PREVIOUSECLIPSE_ID","PurchasEdge_(Y/N)","HP_TONER_UNITS","PL_REMAN_UNITS","FINALISATION_COMMENTS","RENEWAL_POSITION","PROGRAM_NAME","CUSTOMERONBOARDEDON"
"51126","OPP-048697","3/23/2020 19:52",Xavier Weems","","Tiffany Debose","EAST","Vladimir Jaksic","Gray Television, Inc.","​Gray Television, Inc. 4370 Peachtree Rd, NE. Atlanta, Ga  30319","","GA","30319","DN042973875","Dottie Boudreau","Manager","404-266-8333","[email protected]","STAPLES, INC","","","10264576,10252948","NA","","12 months","New","","CL200351126","Commercial - Named","84","89","86","16143","7335","23478","3149","Defend","Defend","Defend","","","","AV summary and PPT sent","","","","","","/E/Data/Funnel/Submit/GRAY TELEVISION, INC USAGE_51126.xlsb","Tiffany Debose","Tiffany Debose","3/26/2020 8:55","","","Deepthi K","","","3/26/2020 0:00","3239.96","13.8","","6/24/2020 0:00","","","NA","","N","168","27","3/24/2020 - sent for specialist approval 3/26/2020 - aV sent","","MCBigDeal",""
"51125","OPP-048696","3/23/2020 18:01","Xavier Weems","","Tiffany Debose","WEST","Jenni HoGlin","STURM FINANCIAL GROUP","3033 East First Avenue","Denver","CO","80206","","","","","","STAPLES, INC","","","10264576,10252948","NA","","12 months","New","","CL200351125","Commercial - Non Named","42","87","65","10201","14198","24399","6369","Winback","Defend","Winback","","","","AV summary and PPT sent","","","","","","/E/Data/Funnel/Submit/STURM FINANCIAL GROUP USAGE_51125.xlsx","Tiffany Debose","Tiffany Debose","3/24/2020 7:49","","","Teja Ravi","","","3/24/2020 0:00","8417.66","34.5","","6/22/2020 0:00","","","NA","","N","127","67","3/24-AV Summary and PPT sent","","SMBA",""

我已经尝试过以下代码来删除自动换行!

awk -F '"[^"]+"' 'NF<73{s = s $0; next} s{print s; s=""} 1; END{if (s) print s}' file

还有

awk -F, 'NF!=73&&!line{line=$0;next} NF!=73&&line{line=line $0} {n=split(line, a, ",")} n==73{print line;line=""}' file.csv

似乎没有任何实际作用!

请在不使用任何外部unix软件包的情况下建议Linux代码!

bash csv awk sed word-wrap
1个回答
0
投票

我假设每一行都以数字开头,以,结尾。

使用GNU sed:

sed -n '1p; 2,${/^[0-9].*,$/{p;b}; :a;N;s/\n/ /;/^[0-9].*,$/{p;b}; ba}' file

1p:打印标题

2,${ ... }:除标题外的所有行

[/^[0-9].*,$/{p;b}:如果行以数字开头并以,结尾,则打印行并跳至脚本的结尾(b

:a; N;s/\n/ /;/^[0-9].*,$/{p;b}; ba:追加下一行(N),删除换行(s/\n/ /)。如果现在行以数字开头并以,结束,则打印行并跳转到脚本的结尾(b)。否则,跳回到标签aba)。

输出:

ID,机会ID,CREATED_DATE,TIR名称,MS Rep,SRC_SSR_REP,区域,HP PBM名称,公司名称,公司地址,公司城市,公司状态,公司邮政编码,公司ID,公司用户联系人名称,公司用户名称,公司用户名称电话,公司用户电子邮件,合作伙伴公司名称,合作伙伴名称,合作伙伴电子邮件,合作伙伴盖,批发商,采购AC编号,使用期限,交易类型,工作的工作台,交易编号,命名的存储区,已零售的单一份额HP份额%,总HP碳粉份额%,交易价值单价,交易价值颜色,总碳粉交易价值,EST折扣值,折扣类型MONO,折扣类型颜色,折扣类型,交易开始日期,交易结束日期,交易结束日期,DEAL POSITION,ECLIPSE ID,ECLIPSE DEAL STATUS,ECLIPSE批准日期,ECLIPSE DEAL批准人,丢失原因,使用情况文件位置,清除者,修改日期,MODIFIED DATE,FINALISATION_RECEIVED_ED_ED_ED_ED_ED_ED_ED_ED_ED_EDATE, PL_REMAN_SHARE,FINALISATION_DOC_PATH,时间流逝,AP批准的发送日期,批准的批准日期,SECONDARY_WHOLESALER,PREVIOUSECLIPSE_ID,PurchasEdge_(Y / N),HP_TONER_UNITS,PL_REMAN_UNITS,FINALISATION_COMMENTS,RENEWAL_POSITION,PROGRAM_NAME,CUSTOMERONRONBOARDEDON51128,OPP-048699,3 / 23/2020 21:02,亚当·多姆(Adam Dohm),谢丽尔·格伦(Cheryl Glenn),蒂芙尼·德波斯(Tiffany Debose),市场来源,“ Flathead Valley学区(卡利斯佩尔,怀特菲什,哥伦比亚瀑布)”,233第一大街E,卡利斯佩尔, MT,59901,Joe Biangone,购买,406-758-8392,biangonej @ sd5.k12.mt.us,TONERPORT公司成立,, 10293955,ESSENDANT,12个月,续订,CL091515474R4-A,SLED,97,100, 98,21592,16781,38373,2452,Defend,Defend,Defend,4/15/2020 0:00,4 / 14/2021 0:00,4 / 14/2021 0:00,Won,42921984 ,,,, ,/ E / Data / Funnel / Submit / FLATHEAD VALLEY SCHOOL DISTRICT USAGE_51128.xlsx,Tiffany Debose,Tiffany Debose,3/26/2020 14:49,3 / 26/2020 0:00,,Bhavana PV ,,,, 613.97 ,1.6 ,,,, NA,42085906,N,179,3,3 / 26-eclipse ,, SMBA,51126,OPP-048697,3 / 23/2020 19:52,Xavier Weems ,, Tiffany Debose,EAST,Vladimir Jaksic,“灰色电视公司”,“灰色电视公司。4370Peachtree Rd,NE.NE,Atlanta,Ga 30319“,GA,30319,DN042973875,Dottie Boudreau,Manager,404-266-8333,dottie @ gray.tv,” STAPLES,INC“,”,“ 10264576,10252948”,NA ,, 12个月,新, CL200351126,商业-命名为,84、89、86、16143、7335、23478、3149,防御,防御,防御,AV摘要和PPT发送、、、、、 // E / Data / Funnel / Submit / GREY TELEVISION,INC USAGE_51126.xlsb“,蒂芙尼·德波斯,蒂芙尼·德波斯,3/26/2020 8:55 ,,, Deepthi K ,, 3/26/2020 0:00,3239.96,13.8,,6/24/2020 0:00,,NA,N,168,27,3 / 24/2020-已送交专家批准3/26/2020-aV已发送,MCBigDeal,51125,OPP-048696,3 / 23/2020 18:01,Xavier Weems ,, Tiffany Debose,WEST,Jenni HoGlin,STURM FINANCIAL GROUP,Denver East First Avenue 3033,CO,80206 ,,,,,“ STAPLES, INC“,”,“ 10264576,10252948”,NA,12个月,全新,CL200351125,商业-未命名,42、87、65、10201、14198、24399、6369,Winback,Defend,Winback 、、、 AV摘要和PPT已发送,/,/ E / Data / Funnel / Submit / STURM FINANCIAL GROUP USAGE_51125.xlsx,Tiffany Debose,Tiffany Debose,3/24/2020 7:49,,Teja Ravi ,, 3 / 24/2020 0:00,8417.66,34.5,,6/22/2020 0:00 ,,, NA ,, N,127,67,3 / 24-AV摘要和发送的PPT ,, SMBA,

参见:man sed

© www.soinside.com 2019 - 2024. All rights reserved.