Python或Bash-如何在两个句子中间添加文件中列出的单词,并将输出放入另一个文件中



我不知道如何定义变量"set"one_answers",然后在"file2"中为"file1"中列出的每个名称添加最后一个单词"username"one_answers"admin"之前放入一个名称和另一个名称"。

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

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

file3 = file1 + file2

示例:

[file1-名称]

史密斯

杰瑞

夏季

阿伦

[file2-句子]

设置用户名

设置管理员

[file3-输出]

设置史密斯用户名

设置史密斯管理员

设置jerry用户名

设置杰瑞管理员

设置夏季用户名

设置夏季管理员

设置aaron用户名

设置aaron管理员

你能更具体地说明你的问题吗?你已经试过了吗?如果是这样的话,请分享。

在我看来,你可以打开file2,阅读每一行,将空格上的两个单词分开(例如,将其添加到列表中(。然后,您可以为该列表中创建的每组单词创建一个新字符串。在文件1中的每一行上循环。对于文件1中的每一行:取文件2中的第一个单词,添加一个空格。添加文件1中的实际行。最后,你添加了另一个空格和中的第二个单词。

现在您有了一个新字符串,例如,您可以将它附加到一个新文件中。您应该在创建字符串的同一循环中将该字符串附加到新文件中。

但话说回来,如果这是你问题的答案,我也不在乎。

在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

也许是这样的。。

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))

我相信这不是最漂亮的方式,但应该有效。但你为什么要做这样的事。。。?

另一个仅使用实用程序的解决方案:

join -1 2 -2 3 file1 file2 | awk '{printf "%s %s %sn", $2, $1, $3}' > file3

最新更新