gpt4 book ai didi

ubuntu - 逐行用另一个文件中的不同文本替换部分行

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:02 27 4
gpt4 key购买 nike

我正在尝试解决这个问题,但我可以只替换整个字符串而不是部分

这就是我目前所拥有的:

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 文件中的第二行替换模拟模式行,它具有结构喜欢:

模拟.txt

randomText1
randomText2
randomText3
randomText4
randomText5


依此类推,直到文件夹中的最后一个 .txt 文件

最佳答案

抱歉之前的错误,请重试。
使用 GNU awk v4.1.0+(请先备份您的文件):

awk -i inplace 'NR==FNR{re[FNR]=$0;print;next}match(FILENAME,/test([0-9]+)/, fi){gsub("mock",re[fi[1]])}1' mock.txt test{1..500}.txt

注意文件不能有回车符 \r\n 结尾,如果有,请评论。

如果文件包含很多行,为了提高效率,将文件分成几行以提高可读性:

awk -i inplace '
NR==FNR{re[FNR]=$0;print;next}
FNR==1{match(FILENAME,/test([0-9]+)/, fi)}
/mock/{gsub(/mock/,re[fi[1]])}
1' mock.txt test{1..500}.txt

关于ubuntu - 逐行用另一个文件中的不同文本替换部分行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54475668/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com