catコマンドを別のコマンドにパイプしてファイル名の出力を停止するにはどうすればよいですか?

catコマンドを別のコマンドにパイプしてファイル名の出力を停止するにはどうすればよいですか?

正規表現を学び、いくつかの文字を含むファイルを作成しました。 catコマンドを使用してテキストフィルタリング引数を使用してrgrepコマンドにパイプすると、生成される出力は "filename:filtered_text"です。

cat regex.txt | rgrep -E '^a'
regex.txt:a
regex.txt:aa
regex.txt:aaa
regex.txt:aaaa
regex.txt:aaaaa
regex.txt:aaaaaa
file:acpi
file:adduser.conf
file:aliases
file:aliases.db
file:alternatives
file:anacrontab
file:apache2
file:apg.conf
file:apm
file:apparmor
file:apparmor.d
file:apport
file:appstream.conf
file:apt
file:avahi

さらに、フォルダ内の他のファイルを確認し、正規表現と一致する場合は、単一のファイルのみをパイピングしてもそのファイルを表示します。

catに渡されたファイルの内容のみを含む一般的な出力を取得するにはどうすればよいですか?

ベストアンサー1

-hwithフラグはファイル名を印刷するフラグrgrepなので、使用する必要があります。rgrepこのフラグはこれを防ぎます。

なぜrgrepsimple grepand cat。したがって、まずそれをする必要はありませんcatgrep PATTERN FILE十分。 2番目rgrepの対応するフラグはgrep -r次のとおりです。-rgrep

-r, --再帰 各ディレクトリの下のすべてのファイルは、シンボリックリンクがコマンドラインにある場合にのみ繰り返し読み込まれます。 ファイルオペランドが指定されていない場合、grepは作業ディレクトリを検索します。 これは -d 再帰オプションと同じです。

簡単な解決策を見つけるには、以下を試してください。

grep '^a' regex.txt

(このモードでそのスイッチを使用する理由は不明です-E。)

おすすめ記事