编辑(问题解决,问题拼写错误,见下文)
我有一个包含示例脚本的文件:
if (test == 1) {
if (test2 == 2) {
doSomething();
}
}
我正在尝试使用AWK通过以下方式删除空行:
awk 'NF' filename1 > filename2
这导致所有前导标签被挤压成如下:
if (test == 1) {
if (test2 == 2) {
doSomething();
}
}
相反,我希望AWK保留原始的前导标签(同时剥去空白行),如下所示:
if (test == 1) {
if (test2 == 2) {
doSomething();
}
}
任何?
编辑(问题已解决)
我刚刚再次测试了它,它似乎是原来的
awk 'NF' filename1 > filename2
的工作原理。结果filename2失败,因为filename1是g ++的临时文件输出,这是执行压扁的程序。
对于混乱和错误感到抱歉,感谢那些回复的人。
答案 0 :(得分:1)
您可以尝试类似
的内容awk '!/^$/'
<强>测试强>
$ awk '!/^$/' inputFile
if (test == 1) {
if (test2 == 2) {
doSomething();
}
}
答案 1 :(得分:0)
不涉及awk的解决方案是使用grep like
grep . filename
选择除换行之外的所有内容。
<强> TEST:强>
$grep . temp
if (test == 1) {
if (test2 == 2) {
doSomething();
}
}
答案 2 :(得分:0)
用以下方式做到:
perl -i -lne 'print if(/./)' file
如果行中至少有一个字符,则会打印出来。否则它只会删除该行。 -i确保它在没有临时文件的情况下发生