2

awk を使用してテキスト ファイルの行間スペースを削除したいと考えています。awkでこれを行うにはどうすればよいですか?

abcd

abcd

abcd

望ましい出力は

abcd
abcd
abcd
4

4 に答える 4

3
awk 'NF' data.txt

file から非空白行のみを出力しますdata.txt。これは、フィールド数 ( NF) がゼロでない (つまり、ゼロより大きい)行のみを出力することによって機能します。

あるいは、

awk 'length' data.txt

長さがゼロでない (つまり、0 より大きい) 行だけを出力することによって機能します。

sedまたはなどgrep、これも実行できる他のツールがありますが、具体的にawk解決策を求められたためです。

于 2012-06-23T04:58:29.953 に答える
2

これにより、非空白行のみが出力されます

awk '/./' test.txt

これは代替の unsing grep です (空の行に一致し、-v で結果を反転します):

grep -v ^$ test.txt
于 2012-06-23T04:57:23.787 に答える
1

入力ファイルを上書きするには、次を使用できますsponge: Is there a way to modify a file in-place

awk '/./ {print}' file | sponge file
于 2012-06-23T04:59:39.013 に答える
0

おそらく、これらの行には空白 (のみ) がある (またはない):

awk '!/^[[:blank:]]*$/' inputfile

と同じことsed

sed '/^[[:blank:]]*$/d' inputfile
于 2012-06-23T05:11:26.960 に答える