繁体   English   中英

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

[英]Python or Bash - How do you add words listed in a file in the middle of two sentences and put the output into another file?

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

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

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

file3 = file1 + file2

例子:

[file1 - 名称]

史密斯

杰瑞

夏天

亚伦

[file2 - 句子]

设置用户名

设置管理员

[文件 3 - 输出]

设置史密斯用户名

设置史密斯管理员

设置杰瑞用户名

设置杰瑞管理员

设置夏季用户名

设置夏季管理员

设置亚伦用户名

设置亚伦管理员

你能更具体地谈谈你的问题吗? 你已经尝试过什么了吗? 如果是这种情况,请分享。

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

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

但是话又说回来,我不确定这是否是您问题的答案。

在 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 %s\n", $2, $1, $3}' > file3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM