0

我有一个看起来像这样的文件:

> cat my.txt
This is sentence 1.
This is sentence 2.
<empty line>
This is sentence 3.

在我的 bash 脚本中,当我添加尝试通过电子邮件发送文件时,会出现额外的一行。

#!/bin/bash
outf="/tmp/my.txt"
action=`cat $outf`
echo $action | mail -s "my test" emailid@mail.com

这是电子邮件的样子:

This is sentence 1.
<empty line>
This is sentence 2.
<empty line>
<empty line>
This is sentence 3.
<empty line>

如何删除多余的空行?

4

2 回答 2

1

在 Unix 中,存在字符转写工具 'tr'

要删除 CR=13(dec)=0D(hex)=15(oct):

tr -d '\015' < infile.txt > outfile.txt

删除 LF=NL=10(dec)=12(oct)

tr -d '\012' < infile.txt > outfile.txt

要删除两者:

tr -d '\015\012' < infile.txt > outfile.txt

不太确定这在 linux 中是如何工作的,但是: http: //linux.about.com/library/cmd/blcmdl1_tr.htm

于 2012-08-02T09:01:31.963 回答
0

使用-n选项:

$ echo -n foo

这将抑制换行符。

于 2012-08-02T08:56:43.223 回答