ファイルから空の行を削除する必要があります (スペースのみ - null レコードではありません)。
次のコマンドは、null 行に対してのみ機能しますが、スペースの場合は機能しません。
sed '/^$/d' filename
grepを使用して実行できますか?
\s*
空白のみを含む空白行に使用します。
sed '/^\s*$/d' file
変更をファイルに保存するには、次の-i
オプションを使用します。
sed -i '/^\s*$/d' file
編集:
正規表現^\s*$
は、空白のみを含む行にgrep -v
一致し、特定のパターンに一致しない行を出力するため、次の例では黒以外の行がすべて出力されます。
grep -v '^\s*$' file
sed -i '/^[ \t]*$/d' file-name
noを持つすべての空白行を削除します。ファイル内の空白(スペースまたはタブ)、つまり(0以上)。
注: 角かっこ内に「スペース」の後に「\t」が続きます...
" -i
" は、更新された内容を強制的にファイルに書き戻します... このフラグがないと、画面上で空の行が削除されたことがわかりますが、実際のファイルには影響しません。
これを行うPOSIX移植可能な方法は次のとおりです。
sed -i '/^[[:blank:]]*$/d' file
また
grep -v '^[[:blank:]]*$' file
sed コマンド (sed '/^$/d' foo ) が正しく実行されていないため、ファイルが Windows マシンからコピーされたことが起こりました。
次のコマンドを実行しましたが、うまくいきました。
$ dos2unix フー