在字段中间(不是行尾)放置一些带有不正确放置的换行符的分隔文件,在Vim中显示为^ M. 它们源自freebcp(在Centos 6上)导出的MSSQL数据库.以十六进制方式转储数据显示\ r \n模式:
$ xxd test.txt | grep 0d0a
0000190: 3932 3139 322d 3239 3836 0d0a 0d0a 7c43
Run Code Online (Sandbox Code Playgroud)
我可以用awk删除它们,但我无法用sed做同样的事情.
这适用于awk,完全删除换行符:
awk 'gsub(/\r/,""){printf $0;next}{print}'
Run Code Online (Sandbox Code Playgroud)
但这在sed中没有,留下换行:
sed -i 's/\r//g'
Run Code Online (Sandbox Code Playgroud)
这似乎没有效果:
sed -i 's/\r\n//g'
Run Code Online (Sandbox Code Playgroud)
在sed表达式中使用^ M(ctrl + v,ctrl + m)似乎也不起作用.
对于这类任务,sed更容易理解,但我正在努力学习更多两者.我不正确使用sed,还是有限制?
无法让shebang在Ubuntu中运行python脚本.我每次只得到一个命令未找到错误.
test.py
#!/usr/bin/env python
print ('!')
Run Code Online (Sandbox Code Playgroud)
然
:which python
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
在shebang玩蟒蛇的不同位置,但没有运气,包括哪个python提供的.有关如何排除故障的任何提示?
谢谢