我已经看过这个问题了,但是sed和awk的答案都没有帮助如何使用sed删除双换行符?.
我有一个文件,我从sqlplus查询:
FOLDER1 filename_0.sem
FOLDER1 filename_1.sem
FOLDER1 filename_2.sem
FOLDER1 filename_3.sem
FOLDER1 filename_4.sem
FOLDER1 filename_5.sem
FOLDER1 filename_6.sem
FOLDER1 filename_7.sem
FOLDER1 filename_8.sem
FOLDER1 filename_9.sem
FOLDER1 filename_10.sem
FOLDER1 filename_11.sem
FOLDER1 filename_12.sem
FOLDER1 filename_13.sem
FOLDER1 filename_14.sem
FOLDER1 filename_15.sem
FOLDER1 filename_16.sem
FOLDER1 filename_17.sem
FOLDER1 filename_18.sem
FOLDER1 filename_19.sem
FOLDER1 filename_20.sem
FOLDER1 filename_21.sem
FOLDER1 filename_22.sem
FOLDER2 filename_0.sem
24 rows selected.
我不知道也不明白为什么在12和13之间放一个f。在任何情况下,因为我不能事先知道我得到了多少行以及双lf行在哪里,所以我需要使用通用规则。
我也试过这些,但是它们不起作用
sed -i 's/nn/n//g' file.txt > otherfile.txt
或
perl -pe 's/nn//' file.txt > otherfile.txt
或
awk 1 ORS='' file.txt > otherfile.txt
如果您使用下面的命令,您可以得到预期的结果:
grep -v "^$" file.txt > otherfile.txt
-v参数使grep显示所有未被指定模式捕获的内容。当我们指定"^$"时,其中^表示行首,$表示行尾,当它们一起使用时表示没有字符的"行,您将删除"空白行">