単語間の複数のスペースを削除する方法は?

単語間の複数のスペースを削除する方法は?
grep include /etc/nginx/nginx.conf

出力:

include /etc/nginx/modules-enabled/*.conf;
    include             mime.types;
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;

希望の出力:

include /etc/nginx/modules-enabled/*.conf;
include mime.types;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

ベストアンサー1

awk '/include/ {$1 = $1; print}' < your-file

そうします。

(デフォルトでは空白)を使用して、空白(デフォルトでは空白)で区切られた項目(最小の空白とタブ、ロケール、およびawkの実装によって異なる項目)を割り当てて、レコードを強制的に再構成$1します。awkOFS

同等sed

sed -E '/include/!d; s/[[:space:]]+/ /g; s/^ //; s/ $//' < your-file

[[:space:]][[:blank:]]これには、少なくともスペースとタブが含まれます。[[:space:]]また、縦間隔文字1も含まれます。これは、ファイルにMSDOS CRLF行末がある場合、行末の偽のCRを削除するため、ここで役に立ちます。


awk1例:垂直タブ、フォームフィード(入力には表示されない)、改行、行区切り(ロギングプロセスには表示されませんawkコンテンツワイヤー順番に

おすすめ記事