输出到文件时获得额外的行?

时间:2014-12-12 00:14:26

标签: linux bash sed grep diff

我使用diff命令并将其打印到文件中。该文件最终得到了额外的一行,我不需要出现。我怎样才能防止它出现在那里?

命令如下:

diff -b <(grep -B 2 -A 1 'bedrock.local' /Applications/MAMP/conf/apache/httpd.conf) /Applications/MAMP/conf/apache/httpd.conf > test.txt

正在使用的文件在这里(我认为我认为不重要):http://yaharga.com/httpd.txt

或许至少我想知道如何查看文件的最后一行并删除它,只有它是空白的。

1 个答案:

答案 0 :(得分:1)

要删除空的最后一行,您可以使用sed,只有在空白时才删除它:

sed '${/^\s*$/d;}' file

好的,我在MacOS上用你的文件进行了研究。 我通过touch new.conf创建了文件new.conf,然后将文件中的数据复制到它。 顺便说一句,我检查了文件,并在其底部没有额外的空行。 我用脚本编写脚本script.sh:

diff -b <(grep -B 2 -A 1 'bedrock.local' new.conf) new.conf > test.txt
sed -i.bak '1d;s/^>//' test.txt

它区分了所需内容并删除了第一个无用的行,而>将其保存到新文件test.txt

我再次检查,没有出现额外的空行。

另外我建议您尝试删除这样的额外行:sed -i.bak '$d' test.txt 并在sed = test.txt

之前和之后检查一些行

您的文本编辑器可能会以某种方式将此额外行添加到您的文件中。尝试其他方法 - 例如nanovi