Python или Bash - Как добавить слова, перечисленные в файле в середине двух предложений, и поместить вывод в другой файл? - PullRequest
0 голосов
/ 22 апреля 2020

Я не знаю, как определить переменные 'set' и '', чтобы затем поставить имя и другое '' перед добавлением последнего слова 'username' и 'admin' в 'file2' для каждого имени, указанного в 'file1' .

file1 = [/home/smith/file1.txt]

file2 = [/home/smith/file2.txt]

file3 = file1 + file2

Пример:

[file1 - Имена]

Смит

Джерри

лето

Аарон

[file2 - Предложения]

установить имя пользователя

set admin

[file3 - Output]

set smith username

set smith admin

set jerry username

set jerry admin

установить летнее имя пользователя

установить летнее имя администратора

установить имя пользователя aaron

установить имя пользователя aaron

Ответы [ 4 ]

0 голосов
/ 22 апреля 2020

Еще одно решение, использующее только утилиты:

join -1 2 -2 3 file1 file2 | awk '{printf "%s %s %s\n", $2, $1, $3}' > file3
0 голосов
/ 22 апреля 2020

Попробуйте это в Bash, оно отвечает на ваш вопрос

#!/bin/bash

file1=".../f1.txt"
file2=".../f2.txt"
file3=".../f3.txt"

while read p1; do
        while read p2; do
                word1=$(echo $p2 | cut -f1 -d' ')
                word2=$(echo $p2 | cut -f2 -d' ')
                echo " $word1 $p1 $word2" >> $file3
        done < $file2
done < $file1
0 голосов
/ 22 апреля 2020

Примерно так, возможно ..

names = file("/home/smith/file1.txt").readlines()
commands = file("/home/smith/file2.txt").readlines()
res = []
for name in names:
 for command in commands:
   command = command.split(" ")
   res.append(" ".join([command[0],name,command[1]]))
file("/home/smith/file3.txt","w").write("\n".join(res))

Я уверен, что это не самый красивый способ, но должен работать. Но почему вы хотите сделать что-то подобное ...?

0 голосов
/ 22 апреля 2020

Не могли бы вы подробнее рассказать c о своей проблеме? А ты уже что-то пробовал? Если это так, пожалуйста, поделитесь им.

На мой взгляд, вы можете открыть файл2, прочитать каждую строку, разбить два слова на пробел (и, например, добавить его в список). Затем вы можете создать новую строку для каждого набора слов, которые вы создали в этом списке. L oop на каждой строке в файле1. Для каждой строки в file1: взять первое слово из file2, добавить пробел. Добавьте фактическую строку из file1. И, наконец, вы добавляете еще один пробел и второе слово из.

Теперь у вас есть новая строка, которую вы можете, например, добавить в новый файл. Вероятно, вам следует добавить эту строку в новый файл в том же l oop, где вы ее создали.

Но, опять же, я не уверен, что это ответ на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...