ディレクトリ内のファイルとその内容を繰り返し一覧表示します。

ディレクトリ内のファイルとその内容を繰り返し一覧表示します。

ディレクトリ内のファイルに保存されているすべての値を見つけようとします。

できますが、cat /some/dir/*次のような結果が出ます。

1
2
3
4

私が望むものは次のとおりです。

/some/dir/file1: 1
/some/dir/file2: 2

私ができる方法はありますか?

答え1

GNU grep(CEntOSで実装)と互換性があります。

grep -r '^' /some/dir

正規表現は^各行の先頭で一致するため、すべての行に一致します。grep一致する各行の前にファイル名を追加します。-n行番号を含むオプションを追加することもできます。

POSIX的に:

find /some/dir -type f -exec grep '^' /dev/null {} +

ファイルリストに要素が1つしかない場合でも、ファイル名が印刷される/dev/nullようにコンテンツを追加します。grep

答え2

すべてのファイルに1行しか含まれていない場合:

find /some/dir -type f -exec awk '{print FILENAME ": " $0}' {} +

それ以外の場合は、ファイル名をヘッダーとして使用して1行を印刷します。

find /some/dir -type f -exec awk 'FNR<2{print FILENAME ":"}1' {} +

関連情報