Linux Sed 命令替换windows下面的回车换行符

暗夜螃蟹 2012-07-18 03:27:37


现有一批CSV数据,第一列URL中有一个回车换行符变成了两行,导致用SQLLOAD导入数据库就变成了两条记录!

我想用SED 命令把那条记录替换成正常的不换行的数据!
我试过很多命令都不行,请大神们赐教!
我试过的命令有:

# sed -r ':a;s/\n//g;' 9.csv >> test.csv
# sed -r ':a;s/\r\n//g;' 9.csv >> test.csv
# sed -r ':a;s/\r//g;' 9.csv >> test.csv
# sed -r ':a;N;s/\n//g;' 9.csv >> test.csv
# sed -r ':a;N;s/^M//g;' 9.csv >> test.csv
# sed -r ':a;N;s/$//g;' 9.csv >> test.csv
# sed -r ':a;N;s/*$//g;' 9.csv >> test.csv
等等一些命令的尝试都不成功,有没有大神想出更好的方法,能否告之小弟,在此感激不尽!!












"www.ibm.com/cn/zhacb",4/1/2012,7554,"0.0%",5629,"0.0%",5347,"0.1%",3266,"0.0%",2165,"0.1%","30.7%",32,2488,"0.1%",3076,"0.0%"
"www.ibm.com/cn/zh",4/4/2012,7287,"0.0%",5202,"0.0%",4943,"0.0%",3037,"0.0%",1984,"0.1%","29.6%",35,2116,"0.0%",2876,"0.0%"
"www.ibm.com/cn/zhdsd",4/7/2012,5672,"0.0%",4098,"0.0%",3879,"0.0%",2605,"0.0%",1361,"0.0%","32.7%",34,1819,"0.0%",2168,"0.0%"
"www.ibm.com/cn dcc, \n<br/> zh
",4/2/2012,5474,"0.0%",4001,"0.0%",3840,"0.0%",2654,"0.0%",1248,"0.0%","36.8%",32,1874,"0.0%",2011,"0.0%"


...全文
1496 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicenight 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 1 楼 的回复:
按现有的文件内容来考虑,末尾不是双引号的则把下一行并上来。如果还有其它的格式可能要再调整:

C/C++ code
[nicenight@CSDN ~]$ cat file.txt
"www.ibm.com/cn/zhacb",4/1/2012,7554,"0.0%",5629,"0.0%",5347,"0.1%",3266,"0.0%",2165,"0.1%……
[/Quote]

你都能写出那么多句了,我这句不是比你的更简单吗,一楼有中文说明,意思就是“末尾不是双引号的则把下一行并上来”。
>>> sed '/[^"]$/{N;s/\n//}' file.txt
/[^"$/ 这是一个模式,末尾不是双引号的行将进行后续处理,否则直接输出
对于末尾是双引号的,则读取下一行放在一起(这时候会有换行符\n),然后删除 \n 于是就变成一行了,然后输出。
暗夜螃蟹 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
按现有的文件内容来考虑,末尾不是双引号的则把下一行并上来。如果还有其它的格式可能要再调整:

C/C++ code
[nicenight@CSDN ~]$ cat file.txt
"www.ibm.com/cn/zhacb",4/1/2012,7554,"0.0%",5629,"0.0%",5347,"0.1%",3266,"0.0%",2165,"0.1%","30.7%",32,2……
[/Quote]

能描述一下您这样写的函意吗,这样写可行。可我没看懂呵呵,请赐教!
wqkjj 2012-07-19
  • 打赏
  • 举报
回复
$sed 's/.$//g' 9.csv >> test.csv

这样可以把CR/LF替换成空格。
nicenight 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

用tr吧

tr -d '\r\n' 9.csv >> test.csv
[/Quote]

咦,怎么回复没了?
这个 tr 操作会把文件变为一行的,不能用。
nicenight 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

用tr吧

tr -d '\r\n' 9.csv >> test.csv
[/Quote]

这样的话,这个文件就变成一行啦。
honty 2012-07-18
  • 打赏
  • 举报
回复
用tr吧

tr -d '\r\n' 9.csv >> test.csv
nicenight 2012-07-18
  • 打赏
  • 举报
回复
按现有的文件内容来考虑,末尾不是双引号的则把下一行并上来。如果还有其它的格式可能要再调整:
[nicenight@CSDN ~]$ cat file.txt 
"www.ibm.com/cn/zhacb",4/1/2012,7554,"0.0%",5629,"0.0%",5347,"0.1%",3266,"0.0%",2165,"0.1%","30.7%",32,2488,"0.1%",3076,"0.0%"
"www.ibm.com/cn/zh",4/4/2012,7287,"0.0%",5202,"0.0%",4943,"0.0%",3037,"0.0%",1984,"0.1%","29.6%",35,2116,"0.0%",2876,"0.0%"
"www.ibm.com/cn/zhdsd",4/7/2012,5672,"0.0%",4098,"0.0%",3879,"0.0%",2605,"0.0%",1361,"0.0%","32.7%",34,1819,"0.0%",2168,"0.0%"
"www.ibm.com/cn dcc, \n<br/> zh
",4/2/2012,5474,"0.0%",4001,"0.0%",3840,"0.0%",2654,"0.0%",1248,"0.0%","36.8%",32,1874,"0.0%",2011,"0.0%"
"www.ibm.com/cn dcc, \n<br/> zh
",4/2/2012,5474,"0.0%",4001,"0.0%",3840,"0.0%",2654,"0.0%",1248,"0.0%","36.8%",32,1874,"0.0%",2011,"0.0%"
"www.ibm.com/cn/zhdsd",4/7/2012,5672,"0.0%",4098,"0.0%",3879,"0.0%",2605,"0.0%",1361,"0.0%","32.7%",34,1819,"0.0%",2168,"0.0%"
"www.ibm.com/cn dcc, \n<br/> zh
",4/2/2012,5474,"0.0%",4001,"0.0%",3840,"0.0%",2654,"0.0%",1248,"0.0%","36.8%",32,1874,"0.0%",2011,"0.0%"
[nicenight@CSDN ~]$ sed '/[^"]$/{N;s/\n//}' file.txt
"www.ibm.com/cn/zhacb",4/1/2012,7554,"0.0%",5629,"0.0%",5347,"0.1%",3266,"0.0%",2165,"0.1%","30.7%",32,2488,"0.1%",3076,"0.0%"
"www.ibm.com/cn/zh",4/4/2012,7287,"0.0%",5202,"0.0%",4943,"0.0%",3037,"0.0%",1984,"0.1%","29.6%",35,2116,"0.0%",2876,"0.0%"
"www.ibm.com/cn/zhdsd",4/7/2012,5672,"0.0%",4098,"0.0%",3879,"0.0%",2605,"0.0%",1361,"0.0%","32.7%",34,1819,"0.0%",2168,"0.0%"
"www.ibm.com/cn dcc, \n<br/> zh",4/2/2012,5474,"0.0%",4001,"0.0%",3840,"0.0%",2654,"0.0%",1248,"0.0%","36.8%",32,1874,"0.0%",2011,"0.0%"
"www.ibm.com/cn dcc, \n<br/> zh",4/2/2012,5474,"0.0%",4001,"0.0%",3840,"0.0%",2654,"0.0%",1248,"0.0%","36.8%",32,1874,"0.0%",2011,"0.0%"
"www.ibm.com/cn/zhdsd",4/7/2012,5672,"0.0%",4098,"0.0%",3879,"0.0%",2605,"0.0%",1361,"0.0%","32.7%",34,1819,"0.0%",2168,"0.0%"
"www.ibm.com/cn dcc, \n<br/> zh",4/2/2012,5474,"0.0%",4001,"0.0%",3840,"0.0%",2654,"0.0%",1248,"0.0%","36.8%",32,1874,"0.0%",2011,"0.0%"

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧