同じ拡張子を持つ複数のファイルパターンの最後の行を読み取る最速の方法

同じ拡張子を持つ複数のファイルパターンの最後の行を読み取る最速の方法

/home/files/同じ拡張子を持つディレクトリにいくつかのファイルがあります.txt

例えば

1.txt
2.txt
3.txt
4.txt
5.txt
test.txt

これらのファイルはすべて同じデータ型を持ちますが、データは異なります。これらのファイルには、少なくとも次の行が含まれています。

frames=[number here]

frames=この行はファイルに複数回表示されるため、ファイルに表示される最後の値を取得する必要があります。

私が言ったように、私は拡張子が.txtと一致するディレクトリにある上記のすべてのファイルからその行を取得したいと思います(再帰は必要ありません)。

これを行うことができる単一のbashコマンドはありますか?

編集する

予想出力:

1.txt=5000
2.txt=123
3.txt=3452
4.txt=111
5.txt=958
test.txt=1231

ベストアンサー1

find+によってgrep

find . -name '*.txt' -exec sh -c 'grep -HPo "frames=\K.*" "$0" | tail -n1' {} \;

同様にShell forLoop+を使用してください。grep

for file in *.txt; do grep -HPo 'frames=\K.*' "$file" | tail -n1; done

おすすめ記事