/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 for
Loop+を使用してください。grep
for file in *.txt; do grep -HPo 'frames=\K.*' "$file" | tail -n1; done