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
添加回答
舉報