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 に答える