как извлечь некоторые строки в файл данных по сравнению с другим файлом данных? (слияние)

У меня есть два разных файла:

first file: id1 19501112 id2 19831207 1d4 20001212 id6 20000101 id10 20061213 id11 20081212 id12 20100109 id13 20101218 id14 20101212 id15 20111111 id16 20150919 id20 20141415 

и второй файл:

 id100 id2 id4 id44 id10 id16 id2000 id34 id5 id7 

поэтому я хочу извлечь эти строки в файле 1, идентификаторы которого совпадают с идентификаторами во втором файле. поэтому я хочу, чтобы мой выходной файл выглядел так:

 id2 19831207 1d4 20001212 id10 20061213 id16 20150919 

любое предложение, пожалуйста?

One Solution collect form web for “как извлечь некоторые строки в файл данных по сравнению с другим файлом данных? (слияние)”

Использование GNU grep:

 grep -w -f file2.txt file1.txt 

Это говорит grep чтобы соответствовать только целым «словам», и получить список шаблонов для поиска из файла file2.txt

Если есть вероятность, что содержимое файла file2.txt может появиться в остальной части строк в файле file1.txt, вы можете использовать подстановку процессов sed и bash так:

 grep -f <(sed -e 's/^/^/ ; s/$/\\b/' file2.txt) file1.txt 

Это использует sed, чтобы преобразовать каждую строку idN в ^idN\b прежде чем использовать ее в grep -f .

  • awk в ssh в su в подстановке команд
  • Извлечение результатов из команды в терминале
  • BASH | Отчет формата CSV
  • Как я могу получить доступ к столбцу строки из строки?
  • Разбиение файла на две части на основе определенной строки
  • bash, если не несколько условий без подоболочки?
  • Как передать переменные команде awk с условиями?
  • Каковы специальные символы для печати из сценария для перемещения курсора?
  • list с некоторым преобразованием имен
  • Замените длинную строку командой sed: слишком длинная ошибка списка аргументов
  • Bash: увеличивать переменную в цикле while?
  • Linux и Unix - лучшая ОС в мире.