【发布时间】:2023-03-14 00:57:02
【问题描述】:
我试图解决这个问题,但我可以只替换整个字符串而不是部分
这就是我目前所拥有的:
cat mock.txt | sed -i -e '/mock/{R/dev/stdin' -e 'd;}' test{1..500}.txt
我想从另一个文件中按顺序替换与行中的模式匹配的部分行,我有多达 500 个 txt 文件,结构为:
test1.txt, test2.txt , test3.txt...
11111
22222
333= mock 33
55555
77777
所以我一个接一个地读取文件,并在第一个 test1.txt 文件中用 mock.txt 文件中的第一行替换模拟模式,在第二个 test2.txt 中用 mock.txt 文件中的第二行替换模拟模式行,该文件具有结构喜欢:
mock.txt
randomText1
randomText2
randomText3
randomText4
randomText5
依此类推,直到文件夹中的最后一个 .txt 文件
【问题讨论】:
-
1 澄清一下,是不是每个文本文件中只有 1 行会有
mock字符串,或者还有更多请告诉我们? -
它可能有很多
-
好的,所以每个下一个文件都需要将第一个模拟字符串出现替换为模拟文件的第一个值?或者它应该从最后一个文件继续计数?
-
例如每个 test{n}.txt 文件都有一个或多个模拟出现,因此第一个文件中的所有模拟模式都应该替换为 mock.txt 中的第一行,依此类推跨度>
-
您能否;请尝试我的 EDIT 解决方案并告诉我,在 1 或 2 个文件上尝试一次(测试文件),然后看看效果如何?