Как добавить каждое слово в конце каждой строки ? слово и строки находятся в разных текстовых файлах

#linux #bash #awk #sed

#линукс #удар #awk #сед

Вопрос:

Мой файл содержит некоторые URL-адреса в urls.txt Другой файл содержит несколько других слов в words.txt

Мне нужно добавлять каждое слово в конце каждого URL-адреса.

Я хочу, чтобы вывод был похож (строка за строкой)

 url.1/hi url.1/hello url.1/there url.2/hi url.2/hello url.2/there url.3/hi url.3/hello url.3/there  

Я просто хочу однострочную команду 🙂

Нравится

 urls.txt   words.txt gt;gt; output.txt  

Комментарии:

1. Проблема выглядит простой, но, пожалуйста, добавьте то, что вы пробовали. Какие проблемы возникают у вас во время программирования? Там нет никакой cat Requirement | StackOverflow.com gt; workDone службы

Ответ №1:

Дано:

 cat words.txt hi hello there  cat urls.txt url.1 url.2 url.3  

Вы можете использовать awk этот способ:

 awk 'FNR==NR{words[cnt  ]=$1; next}  {for (i=0; ilt;cnt; i  ) print $1 words[i]} ' words.txt urls.txt  

С принтами:

 url.1hi url.1hello url.1there url.2hi url.2hello url.2there url.3hi url.3hello url.3there  

Ответ №2:

Это может сработать для вас (GNU sed и Parallel)

 parallel echo "{1}{2}" :::: urlsFile :::: wordsFile  

или

 sed 's@.*@echo "amp;" | sed "s#.*#amp;amp;#" wordsFile@e' urlsFile