【发布时间】:2014-07-21 15:44:10
【问题描述】:
描述:整行包含制表符/制表符和/或空格/空格,后跟换行符,不需要转义其他字符。在一个巨大的数据文件中散布着几行这样的行。
需要注意:
这里的空格是指(制表符或空格)不是空行。
只有换行符的空行不应放在前面(需要删除)。该去除部分可以或可以不在单衬中实现。
基本上想知道是否可以使用 sed/perl/awk 单行。
提前致谢。
我的尝试是这些但没有多大成功......
尝试了这些但没有多大成功..
sed -i 's/\^[\s\+\|\t\+]\+\$\n/\^\\[\s\+\|\t\+]\+\$\n/g' filename
perl -i -ne 'chomp; print \"\\\$_\n\" if (\$_ eq \"\")' filename
perl -pi -ne 's/\S\+/\\\S\+/g if (\$_ eq \"\")' filename
sed -i 's/\^[:space:]\+\$\n/\^\\[:space:]\+\$\n/g' filename
【问题讨论】:
-
尝试了这些但没有多大成功.. sed -i 's/\^[\s\+\|\t\+]\+\$\n/\^\[\s\+ \|\t\+]\+\$\n/g' 文件名 perl -i -ne 'chomp; print \"\\\$_\n\" if (\$_ eq \"\")' 文件名 perl -pi -ne 's/\S\+/\\\\\S\+/g if ( \$_ eq \"\")' 文件名 sed -i 's/\^[:space:]\+\$\n/\^\[:space:]\+\$\n/g' 文件名
-
我不清楚“...需要转义”是什么意思。您能否编辑您的帖子以包含一些示例输入和示例输出?
-
是的,这是可能的。一些单行包含 10,000 多个字符并且完全不可读 - 因为您要求的“单行”可能是您得到的,希望没关系。
-
By 需要转义我的意思是那些行应该保留在文件中,但前面有一个 esc 字符“\”。这些行不应从文件中删除。