我有一个这样的文本文件[方括号中的行尾字符]。
显然这里有些错误,我想删除空行。我怎么能这样做?
我更喜欢bash解决方案,但也欢迎其他人。
717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]
717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]
717018|2026494|67685|Sulfinyl bis(methane)|Carrier|NR||NR||NR|||NR||NR||NR||10% OF CARRIER SOLUTION[CR]
[CR][LF]
[CR][LF]
717019|2026494|57556|1,2-Propanediol|Carrier|NR||NR||NR|||NR||NR||NR||40% OF CARRIER SOLUTION[CR][LF]
717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]
这不起作用(不知道为什么......):
sed -i '/^$/d' file.txt
更新 我想要的输出是
717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]
717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]
717018|2026494|67685|Sulfinyl bis(methane)|Carrier|NR||NR||NR|||NR||NR||NR||10% OF CARRIER SOLUTION[CR][LF]
717019|2026494|57556|1,2-Propanediol|Carrier|NR||NR||NR|||NR||NR||NR||40% OF CARRIER SOLUTION[CR][LF]
717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]
所以第三行以[CR] [LF]结束,第4 + 5行被删除。
答案 0 :(得分:1)
使用\r
代表LF:
sed '/^\r$/d' file
或者,在文件上运行dos2unix
以删除换行符。
答案 1 :(得分:0)
尝试使用此sed命令:
sed -i.bak '/^ *'$'\r''*$/d' file
答案 2 :(得分:0)
Notepad ++ offer(你提到欢迎其他人):
编辑以澄清问题:
首先用单个替换双[CR],然后用编辑,行操作,删除空行。
答案 3 :(得分:0)
尝试:
grep "|" textfile.txt > output.txt