sed を使用して空行を削除しようとしています:
sed '/^$/d'
しかし、私はそれで運がありません。
たとえば、次の行があります。
xxxxxx
yyyyyy
zzzzzz
そして、私はそれが次のようになりたい:
xxxxxx
yyyyyy
zzzzzz
これのコードは何ですか?
「空の」行にスペースまたはタブが含まれている場合があります。POSIX クラスを使用しsed
て、空白のみを含むすべての行を削除します。
sed '/^[[:space:]]*$/d'
ERE を使用する短いバージョン (gnu sed など):
sed -r '/^\s*$/d'
(sed はPCRE をサポートしていないことに注意してください。)
sed '/^$/d'
ファイルをその場で変更することを期待していますか? その場合は、-i
フラグを使用する必要があります。
おそらくそれらの行は空ではないので、その場合は、この質問を見てくださいRemove empty lines from txtfiles, remove space from start and end of line私はそれがあなたが達成しようとしているものだと信じています.
これが最も簡単で最速だと思います:
cat file.txt | grep .
すべての空白行も無視する必要がある場合は、これを試してください。
cat file.txt | grep '\S'
例:
s="\
\
a\
b\
\
Below is TAB:\
\
Below is space:\
\
c\
\
"; echo "$s" | grep . | wc -l; echo "$s" | grep '\S' | wc -l
出力
7
5
あなたは言うことができます:
sed -n '/ / p' filename #there is a space between '//'
「grep」を使用して、そのようなこともできます。
egrep -v "^$" file.txt