4 回答

TA贡献1858条经验 获得超8个赞
像这样的东西,也许..
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))
我敢肯定这不是最漂亮的方式,但应该可以。但是你为什么要做这样的事情......?

TA贡献1806条经验 获得超8个赞
你能更具体地谈谈你的问题吗?你已经尝试过什么了吗?如果是这种情况,请分享。
在我看来,您可以打开 file2,读取每一行,在空格上拆分两个单词(例如,将其添加到列表中)。然后,您可以为您在该列表中创建的每组单词创建一个新字符串。循环 file1 中的每一行。对于 file1 中的每一行:从 file2 中取出第一个单词,添加一个空格。从 file1 添加实际行。最后,您添加另一个空格和第二个单词 from。
例如,您现在有一个新字符串,您可以将其附加到新文件中。您可能应该将该字符串附加到创建字符串的同一循环中的新文件中。
但是话又说回来,我不确定这是否是您问题的答案。

TA贡献1845条经验 获得超8个赞
仅使用实用程序的另一种解决方案:
join -1 2 -2 3 file1 file2 | awk '{printf "%s %s %s\n", $2, $1, $3}' > file3

TA贡献1942条经验 获得超3个赞
在 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
添加回答
举报