BASH - wyciąganie danych z pliku po id

0

Hej,

Mam pewien problem ze skryptem w bashu. Mam dwa pliki m.txt i d.txt.
W pliku m.txt znajduje się jedna kolumna z id, a w pliku d.txt 4 kolumny: id, 1, 2, 3. W pliku m.txt znajduje się dużo mniej "id" niż w d.txt
Muszę zrobić tak, aby wyciągnąć z pliku d.txt tylko te rekordy, których id mam podane w pliku m.txt.

Próbowałem używać

 grep -f m.txt d.txt > wynik.txt

Ale otrzymywałem dużo więcej rekordów niż powinno być.
Mógłby ktoś pokierować?

Pozdrawiam

0

Załóżmy, że:
m.txt:
5
234

d.txt
2 z 335x d a
3 a a 5 f
5 a s gsdf a
234 1 xcf asdfsdf

grep -f m.txt d.txt:
2 z 335x d a
3 a a 5 f
5 a s gsdf a
234 1 xcf asdfsdf

Pożądany wynik:
5 a s gsdf a
234 1 xcf asdfsdf

Pasuje np. taka komenda (separatory dostosuj wedle potrzeb):
for el in $(cat m.txt); do grep '^'"$el .*" d.txt; done

1 użytkowników online, w tym zalogowanych: 0, gości: 1