このページのほとんどのソリューションは私にとっては機能しません(FreeBSD 10.3 amd64)。イアン・ウィルの OSXソリューションは、ほとんど、常に動作しますが、従うことはかなり困難ですん: - (
ほとんど-常にあまりにも動作します簡単な解決策があります:($ fはファイルの場合):
SED -i「」-e「$ \」「の$ F」
sedの溶液で大きな問題があります:それはあなただけ(改行を追加していない)を確認する 機会を与えることはありません
。
上記の両方のソリューションはDOSファイルでは機能しません。 ポータブル/スクリプト可能なソリューションはprobです私が自分で開発した の中でもっとも簡単なものです: -
ここにfile/unix2dos/tailを組み合わせた基本的なshスクリプトです。 生産では、あなたはおそらくこれが誰かの役に立てば幸い
if file $f | grep 'ASCII text' > /dev/null; then
if file $f | grep 'CRLF' > /dev/null; then
type unix2dos > /dev/null || exit 1
dos2unix $f
last="`tail -c1 $f`"
[ -n "$last" ] && echo >> $f
unix2dos $f
else
last="`tail -c1 $f`"
[ -n "$last" ] && echo >> $f
fi
fi
引用符での「$ F」を使用し、\「$ fが\」として(最後の名前のシェル変数の中に埋め込まれた)テール出力 を取得する必要があります。
フォルダの下にあるファイルを幅広く表示したいのですか?あなたの質問は、上記の例ではあまり明確ではありません。 – James
「通常のtxt」は何を意味していますか? *空白行(\ n \ n)で終わるファイルや改行で終わるファイルについて話していますか? 'od -c filename'を使うと、ファイルのあいまいな表現を出力することができます。 – jfs
強調すると、改行は*空白行と同じではありません。改行は1文字です。これは、 "行"と見なす範囲を区切ります。空白行は、文字を含まない単純な "行"です。通常は、2つの連続した改行文字の間には何も置かれません。改行文字で始まるファイルの最初の行です。空白の空白行だけで構成される行を呼び出して、2つの連続した改行文字に空の行という用語を予約する人もいます。あなたはあなたが望むものについて明確にすべきです。 – jw013