ドット/拡張子のないパターンを検索するgrepファイル、空の場合は次の行を削除します

ドット/拡張子のないパターンを検索するgrepファイル、空の場合は次の行を削除します

次のデータを含むファイルがあります。 https://pastebin.com/TXrmVpwF 私が達成したいのは、パターンがありますが、名前に拡張子やドットがないすべての行を見つけて削除し、trueの場合はその後の空の行を削除することです。

パターン:

# /x/123

# /x/test

# /x/test_backup

# /x/123/10

ベストアンサー1

ファイルがUnixテキストファイル(DOSテキストファイルではない場合はdos2unix最初に実行する必要があります)であるとします。

sed '/^#/{ /\./!{ N; /\n$/d; }; }' <file

注釈付きsedスクリプト:

/^#/{           # The current line starts with a "#"
    /\./!{      # The current line does not contain a dot
        N;      # Append next line with a \n in-between
        /\n$/d; # The line just appended was empty, delete, start next cycle
    }
}
                # (implicit print)

ディレクトリ名にはドットが許可されていますが、最後のパス名部分にはドットが許可されていない場合(つまり、後に# /x.x/text空白行がある場合は削除する必要があります)/\./に変更します/\.[^/]*$/

おすすめ記事