Получить пары значений ключа -из файла для списка ключей из другого файла

Вместо того, чтобы удалять все остальное в /tmp, я бы рекомендовал копировать только интересующие вас файлы:

cp /tmp/*.csv /data/logs/

или даже

mv /tmp/*.csv /data/logs/

, если вам не нужно хранить их в /tmp.

Предполагается, что все интересующие вас файлы находятся непосредственно в /tmp; ваше использование rmпредполагает, что они есть.

Поскольку /tmpявляется общим временным каталогом, он может содержать другие файлы, которые ожидают найти там другие запущенные процессы, и удаление всего в /tmp, кроме CSV-файлов, может иметь неблагоприятные последствия. Как уже упоминалось, вы также не должны изменять PATH, так как ваша оболочка использует это для поиска команд, которые вы используете.

0
02.04.2021, 20:34
3 ответа

Можно попробовать awk:

$ awk 'NR==FNR{keys[$1]; next} $1 in keys' file1 FS='=' file2
a=1
d=4
f=5
2
28.04.2021, 22:54

Примерно для этого и предназначен grep -f:

$ grep -f file1 file2
a=1
d=4
f=5

Это ищет ключи из file1в любом месте строк в file2, но не только перед =; это может не сработать для ваших реальных данных.

1
28.04.2021, 22:54

С GNU join, bashиsort:

join -t '=' <(sort file1) <(sort file2)

Выход:

a=1
d=4
f=5
2
28.04.2021, 22:54

Теги

Похожие вопросы