我正在使用 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
也许至少我想知道如何检查文件的最后一行并仅在它为空时将其删除。
最佳答案
要删除空的最后一行,您可以使用 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
可能是您的文本编辑器以某种方式将这一行添加到您的文件中。尝试其他东西 - 例如 nano
或 vi
关于linux - 输出到文件时得到额外的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27434827/