0

我有一个像这样的文本文件[方括号中的行尾字符]。

显然这里出了点问题,我想删除空行。我怎样才能做到这一点?

我更喜欢 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 行被删除。

4

4 回答 4

1

用于\r表示 LF:

sed '/^\r$/d' file

或者,dos2unix在文件上运行以消除换行符。

于 2013-07-31T10:30:53.913 回答
0

试试这个 sed 命令:

sed -i.bak '/^ *'$'\r''*$/d' file
于 2013-07-31T10:31:49.050 回答
0

Notepad++ 提供(欢迎您提及其他人!):

SO17967892 示例

编辑以澄清问题:

首先将双 [CR] 替换为单,然后编辑、行操作、删除空行。

于 2013-07-31T10:38:08.217 回答
0

尝试:

grep "|" textfile.txt > output.txt

于 2013-07-31T10:47:23.680 回答