linux文本替换,将文本b中内容替换到文本a中指定字符串之间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux文本替换,将文本b中内容替换到文本a中指定字符串之间相关的知识,希望对你有一定的参考价值。
有文件A内容如下
<color name="vector_bg">#ff55c2bc</color><color name="background_primary">#ffffffff</color><color name="action_mode_title_text_p">#cdffffff</color>
......有文件B内容如下
0AF5c8
0AFDc8
00F3BE
0A3569
0A3F7A
0C1F49
……
希望将文本B从m行到n行之间的内容,依次替换到文本A中指定字符串之间>#********</color>,并将#后面的两个字符都改为FF,替换完成后保存到文件A
<color name="vector_bg”>#FF00F3BE</color>
<color name="background_primary”>#FF0A3569</color>
<color name="action_mode_title_text_p”>#FF0A3F7A</color>
没有分了,求好心大佬帮忙,感激不尽。
1、思路:提前修改b.txt文件内容为
<color name="vector_bg”>#FF00F3BE</color>
<color name="background_primary”>#FF0A3569</color>
<color name="action_mode_title_text_p”>#FF0A3F7A</color>
2、在m行做标记<! -- start -->
3、对a.txt执行m-n行删除
sed -i '11,20d' a.txt
4、将b.txt内容插入至<! -- start -->
sed -i "/start/r b.txt" a.txt
追问有好几千个#********标签开头的行
参考技术A import os os.chdir('d:\\') # 跳到D盘 if not os.path.exists('pp.txt'): # 看一下这个文件是否存在 exit(-1) #,不存在就退出 lines = open('pp.txt').readlines() #打开文件,读入每一行 fp = open('pp2.txt','w') #打开你要写得文件pp2.txt for s in lines: fp.write( s.replace('love','hate').replace('yes','no')) # replace是替换,write是写入 fp.close() # 关闭文件追问大佬没反应
php 通过 strtr 方法来替换文本中指定的内容
通过在文本中指定待替换的内容,如:
[{name}]
[{age}]
格式可以自己定义,
大概过程:
在文本中定义需要替换的文本内容;
以键值对的方式 组织数据(数组);
用 file_get_contents() 读取整个文件的内容;
再用 strtr() 替换内容。
function make_content($file, array $vars = array()) { $pairs = array(); foreach ($vars as $name => $value) { $key = sprintf(‘[{%s}]‘, strtoupper($name)); // [{}] 格式自己定义 $pairs[$key] = (string)$value; } $template_content = file_get_contents($file); // 将文本读成字符串 $result = strtr($template_content, $pairs); // 整个数组替换 return $result; }
以上是关于linux文本替换,将文本b中内容替换到文本a中指定字符串之间的主要内容,如果未能解决你的问题,请参考以下文章